Få tilgang til skjemadata
Når du vil utvide funksjonaliteten til et Microsoft Office InfoPath 2003-skjema, er det ofte nødvendig å ha programmatisk tilgang til informasjon om skjemaets underliggende XML-dokument, ha tilgang til dataene i XML-dokumentet eller utføre handlinger i XML-dokumentet. InfoPath-objektmodellen støtter tilgang til og behandling av et skjemas underliggende XML-dokument gjennom bruk av XDocument-objektet sammen med XDocuments-samlingen.
XDocument-objektet er et av de nyttigste objektene i InfoPath-objektmodellen fordi det inneholder en rekke egenskaper, metoder og hendelser som ikke bare fungerer interaktivt med et skjemas underliggende XML-dokument, men som også utfører mange av handlingene i InfoPath-grensesnittet.
Oversikt over XDocuments-samlingen
XDocuments-samlingen inneholder følgende metoder og egenskaper som skjemautviklere kan bruke til å behandle XDocument-objektene i samlingen:
Navn | Beskrivelse |
---|---|
Close-metoden | Lukker det angitte skjemaet |
New-metoden | Oppretter et nytt skjema basert på et eksisterende skjema |
NewFromSolution-metoden | Oppretter et nytt skjema basert på en eksisterende skjemamal |
NewFromSolutionWithData-metoden | Oppretter et nytt Microsoft Office InfoPath 2003-skjema ved hjelp av de angitte XML-dataene og den angitte skjemamalen. |
Open-metoden | Åpner det angitte skjemaet |
Count-egenskapen | Returnerer antallet XDocument-objekter i samlingen |
Item-egenskapen | Returnerer en referanse til det angitte XDocument-objektet |
Oversikt over XDocument-objektet
XDocument-objektet inneholder følgende metoder og egenskaper som skjemautviklere kan bruke til å arbeide interaktivt med og utføre handlinger i et skjemas underliggende XML-dokument:
Navn | Beskrivelse |
---|---|
GetDataVariable-metoden | Returnerer strengverdien til en angitt datavariabel |
GetDOM-metoden | Returnerer en referanse til XML DOMen (Document Object Model) som er knyttet til det angitte DataObject-objektet |
ImportFile-metoden | Importerer (eller fletter) det angitte skjemaet med gjeldende åpne skjema |
PrintOut-metoden | Skriver ut gjeldende visning av et skjema |
Query-metoden | Henter data fra et skjemas tilknyttede dataadapter |
Save-metoden | Lagrer gjeldende åpne skjema |
SaveAs-metoden | Lagrer gjeldende åpne skjema med angitt navn |
SetDataVariable-metoden | Angir verdien til en angitt datavariabel |
Submit-metoden | Sender et skjema ifølge sendeoperasjonen som ble opprettet i utformingsmodus |
DataObjects-egenskapen | Returnerer en referanse til DataObjects-samlingen |
DOM-egenskapen | Returnerer en referanse til XML DOMen som fylles ut med kilde-XML-dataene for et skjema |
Errors-egenskapen | Returnerer en referanse til Errors-samlingen |
Extension-egenskapen | Returnerer en referanse til et objekt som representerer alle funksjonene og variablene i et skjemas skriptfil |
IsDirty-egenskapen | Returnerer en boolsk verdi som angir om dataene i skjemaet er endret |
IsDOMReadOnly-egenskapen | Returnerer en boolsk verdi som angir om XML DOMen er skrivebeskyttet |
IsNew-egenskapen | Returnerer en boolsk verdi som angir om skjemaet har vært lagret etter at det ble opprettet |
IsReadOnly-egenskapen | Returnerer en boolsk verdi som angir om skjemaet er i skrivebeskyttet modus |
IsSigned-egenskapen | Returnerer en boolsk verdi som angir om skjemaet er digitalt signert |
Language-egenskapen | Angir eller returnerer strengverdien for språket som brukes i skjemaet |
QueryAdapter-egenskapen | Returnerer en referanse til dataadapterobjektet |
Solution-egenskapen | Returnerer en referanse til Solution-objektet |
UI-egenskapen | Returnerer en referanse til UI-objektet |
URI-egenskapen | Returnerer en strengverdi som inneholder skjemaets URI (Uniform Resource Identifier) |
View-egenskapen | Returnerer en referanse til View-objektet |
ViewInfos-egenskapen | Returnerer en referanse til ViewInfos-samlingen |
Obs! XDocument-objektet implementerer også fem hendelser som ikke vises i den tabellen ovenfor. Hvis du vil ha informasjon om disse hendelsene, se språkreferanseemnet for XDocument-objektet i InfoPath Developer's Reference.
Bruke XDocuments-samlingen og XDocument-objektet
XDocuments-samlingen er tilgjengelig via XDocuments-egenskapen for Application-objektet. Når du bruker XDocuments-samlingen til å få tilgang til et skjemas underliggende XML-dokument, overfører du et langt heltall eller en streng til Item-metoden for å returnere en referanse til et XDocument-objekt. Hvis du for eksempel har et skjema med navnet MyForm, vil begge disse kodelinjene returnere en referanse til samme XDocument-objekt hvis det er det første XDocument-objektet i XDocuments-samlingen:
var objXDocs;
objXDocs = Application.XDocuments(0);
// is the same as using...
objXDocs = Application.XDocuments("MyForm");
Det er imidlertid mye enklere å få tilgang til et skjemas underliggende XML-dokument ved å bruke XDocument-objektet direkte, uten å bruke XDocuments-samlingen. Dette er mulig fordi XDocument-objektet er bygd direkte inn i InfoPath-skriptmotoren. Følgende kode utfører for eksempel samme operasjon som det forrige eksemplet:
var objXDoc;
objXDoc = XDocument;
Obs! Når du bruker XDocument-objektet til å få tilgang til et skjemas underliggende XML-dokument, får du tilgang til det XML-dokumentet som er knyttet til gjeldende åpne skjema.
En nøkkelegenskap for XDocument-objektet er DOM-egenskapen. Den returnerer en referanse til XML DOMen som fylles ut med kilde-XML-dataene for et skjema. Når du bruker DOM-egenskapen, kan du bruke en hvilken som helst av egenskapene og metodene som støttes av XML DOMen. Følgende kode bruker for eksempel xml-egenskapen for XML DOMen til å returnere alt innholdet i et skjemas underliggende XML-dokument:
var strXML;
strXML = XDocument.DOM.xml;
Obs! Hvis du vil lære mer om XML DOM og egenskapene og metodene den støtter, se dokumentasjonen for MSXML 5.0 SDK i hjelpesystemet for Microsoft Script Editor (MSE).