Vorgehensweise: Zugreifen auf Anwendungsdaten mit dem InfoPath 2003-Objektmodell

Das InfoPath 2003-kompatible Objektmodell stellt Objekte und Auflistungen bereit, mit deren Hilfe der Zugriff auf Informationen zur InfoPath-Anwendung ermöglicht wird, einschließlich Informationen zu dem einem Formular zugrunde liegenden XML-Dokument und der Formulardefinitionsdatei (XSF). Der Zugriff auf diese Daten erfolgt über das Objekt der obersten Ebene in der Hierarchie des InfoPath-Objektmodells, das mithilfe der Application-Schnittstelle instanziiert wird.

Ein InfoPath 2003-kompatibles Formularvorlagenprojekt mit verwaltetem Code, das mithilfe von Microsoft Visual Studio Tools für Anwendungen (VSTA) oder Visual Studio 2005 mit Microsoft Visual Studio 2005 Tools für 2007 Microsoft Office System oder Visual Studio 2008 mit Visual Studio Tools für Office erstellt wurde, initialisiert die thisApplication-Variable in der _Startup-Methode der Formularcodeklasse, die für den Zugriff auf die Member der Application-Schnittstelle verwendet werden kann. Im folgenden Beispiel werden die Eigenschaften Name und Version der Application-Schnittstelle verwendet, um den Namen und die Versionsnummer der ausgeführten InfoPath-Instanz zurückzugeben. Diese Informationen werden in einem Meldungsfeld mithilfe der Alert-Methode der UI2-Schnittstelle angezeigt.

thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
   "\nApplication version: " + thisApplication.Version);
thisXDocument.UI.Alert("Application name: " & thisApplication.Name & _
   vbNewLine & "Application version: " & thisApplication.Version)

Im Visual C#-Beispiel wird der Verweis auf das Zeichen \n in der Zeichenfolge für die Warnmeldung durch nicht verwalteten InfoPath-Code als Standardzeilenvorschub gerendert, der dafür sorgt, dass ein Umbruch in den Text eingefügt und der Text in eine neue Zeile im Meldungsfeld gesetzt wird. Um explizit den neuen Zeilenwert zu verwenden, der für die aktuelle Umgebung und Plattform definiert wurde, sollten Sie die Environment.NewLine-Eigenschaft verwenden, wie dies im folgenden Beispiel dargestellt ist.

thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
   Environment.NewLine + "Application version: " + 
   thisApplication.Version);

Zugreifen auf Daten aus dem zugrunde liegenden XML-Dokument eines Formulars

Entwickler können die XDocument-Schnittstelle verwenden, um auf Informationen zu dem einem Formular zugrunde liegenden XML-Dokument zuzugreifen, einschließlich eines Verweises auf ein XML-DOM (Document Object Model), das die XML-Quelldaten des Formulars enthält.

Im folgenden Beispiel zeigt das erste Meldungsfeld einige der Daten an, die von der XDocument-Schnittstelle verfügbar sind, z. B. ob das zugrunde liegende XML-Dokument geändert wurde (mithilfe der IsDirty-Eigenschaft) und ob es digital signiert wurde (mithilfe der IsSigned-Eigenschaft). Das nächste Meldungsfeld verwendet die DOM-Eigenschaft der XDocument-Schnittstelle, um die XML-Quelldaten des dem Formular zugrunde liegenden XML-Dokuments anzuzeigen.

thisXDocument.UI.Alert("\nIsDirty: " + thisXDocument.IsDirty +
   "\nIsDOMReadOnly: " + thisXDocument.IsDOMReadOnly +
   "\nIsNew: " + thisXDocument.IsNew +
   "\nIsReadOnly: " + thisXDocument.IsReadOnly +
   "\nIsSigned: " + thisXDocument.IsSigned);

thisXDocument.UI.Alert(thisXDocument.DOM.xml);
thisXDocument.UI.Alert("IsDirty: " & thisXDocument.IsDirty & vbNewLine & _
   "IsDOMReadOnly: " & thisXDocument.IsDOMReadOnly & vbNewLine & _
   "IsNew: " & thisXDocument.IsNew & vbNewLine & _
   "IsReadOnly: " & thisXDocument.IsReadOnly & vbNewLine & _
   "IsSigned: " & thisXDocument.IsSigned)

thisXDocument.UI.Alert(thisXDocument.DOM.xml)

Die xml-Eigenschaft, die im vorangegangenen Beispiel verwendet wurde, ist eine Eigenschaft des XML-DOM (Document Object Model). Weitere Informationen zum XML-DOM finden Sie in der Dokumentation zum MSXML 5.0-SDK.

Zugreifen auf Daten aus der Formulardefinitionsdatei eines Formulars

Der Zugriff auf Informationen zur XSF-Datei eines Formulars, einschließlich eines XML-DOM-Verweises auf die XML-Quelldaten, die es enthält, kann auch mithilfe der XDocument-Schnittstelle erfolgen. Der Zugriff auf diese Informationen erfolgt über die Solution-Eigenschaft, die einen Verweis auf die SolutionObject-Schnittstelle zurückgibt.

Im folgenden Beispiel zeigt der erste Hinweis einige der Daten an, die über die SolutionObject-Schnittstelle verfügbar sind, z. B. die URI-Adresse (Uniform Resource Identifier) (mithilfe der URI-Eigenschaft) und die Versionsnummer (mithilfe der Version-Eigenschaft). Der nächste Hinweis verwendet die DOM-Eigenschaft der SolutionObject-Schnittstelle, um die XML-Quelldaten der XSF-Datei anzuzeigen.

thisXDocument.UI.Alert("PackageURL: " +
   thisXDocument.Solution.PackageURL +
   "\nURI: " + thisXDocument.Solution.URI +
   "\nVersion: " + thisXDocument.Solution.Version);

thisXDocument.UI.Alert(thisXDocument.Solution.DOM.xml);
thisXDocument.UI.Alert("PackageURL: " & _
   thisXDocument.Solution.PackageURL & vbNewLine & _
   "URI: " & thisXDocument.Solution.URI & vbNewLine & _
   "Version: " & thisXDocument.Solution.Version)

thisXDocument.UI.Alert(thisXDocument.Solution.DOM.xml)