使用 InfoPath 2003 物件模型存取應用程式數據
InfoPath 2003 相容物件模型提供了一些物件和集合,可用來存取 InfoPath 應用程式相關資訊,包括與表單基礎 XML 文件及表單定義檔 (.xsf) 相關的資訊。 這些資料可透過 InfoPath 物件模型階層最上層的物件來存取 (該物件會使用 Application 介面來執行個體化)。
使用 Visual Studio 2012 建立的 InfoPath 2003 相容 Managed 程式代碼表單範本專案,會在表單程式代碼類別的 方法中_Startup
初始化 thisApplication
變數,可用來存取應用程式介面的成員。 在下列範例中,會使用 Application 介面的 Name 和 Version 屬性來傳回執行中 InfoPath 執行個體的名稱及版本號碼。 您可藉由使用 UI2 介面的 Alert 方法,在訊息方塊中顯示這項資訊。
thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
"\nApplication version: " + thisApplication.Version);
thisXDocument.UI.Alert("Application name: " & thisApplication.Name & _
vbNewLine & "Application version: " & thisApplication.Version)
在 Visual C# 範例中,警示訊息字串中字元的參考 \n
是由 InfoPath Unmanaged 程式代碼轉譯為標準的新行摘要,導致文字中斷,並放在消息框的新行上。 若要明確使用針對目前環境和平台所定義的新行值,請改用 Environment.NewLine 屬性,如下列範例所示。
thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
Environment.NewLine + "Application version: " +
thisApplication.Version);
從表單的基礎 XML 文件存取資料
開發人員可以使用 XDocument 介面來存取表單基礎 XML 文件相關資訊,包括含有表單來源 XML 資料的 XML 文件物件模型 (DOM) 參照。
在下列範例中,第一個訊息方塊會顯示 XDocument 介面可使用的某些資料,例如基礎 XML 文件是否已變更 (使用 IsDirty 屬性),以及它是否已經數位簽署 (使用 IsSigned 屬性)。 下一個訊息方塊使用 XDocument 介面的 DOM 屬性,以顯示表單基礎 XML 文件的來源 XML。
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)
在上述範例中使用的 xml 屬性是 XML 文件物件模型 (DOM) 的屬性。 如需關於 XML DOM 的詳細資訊,請參閱 MSXML 5.0 SDK 文件。
從表單的表單定義檔存取資料
您也可以使用 XDocument 介面來存取表單的 .xsf 檔案相關資訊,包括它所包含的來源 XML 資料的 XML DOM 參照。 可使用 Solution 屬性來存取這項資訊,該屬性會傳回 SolutionObject 介面的參照。
在下列範例中,第一個提醒顯示可透過 SolutionObject 介面使用的一些資料,例如它的統一資源識別元 (URI) 位置 (使用 URI 屬性) 及其版本號碼 (使用 Version 屬性)。 下一個提醒使用 SolutionObject 介面的 DOM 屬性來顯示 .xsf 檔的來源 XML。
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)