Поделиться через


Практическое руководство. Доступ к данным приложений с помощью объектной модели InfoPath 2003

Объектная модель, совместимая с InfoPath 2003, предоставляет объекты и семейства, которые можно использовать для получения доступа к сведениям о приложении InfoPath, включая сведения, связанные с базовым XML-документом формы и файлом определения формы (.xsf). Доступ к этим данным предоставляется посредством объекта верхнего уровня в иерархии объектной модели InfoPath, который создается с помощью интерфейса Application.

Проект шаблона формы с управляемым кодом, совместимый с InfoPath 2003 и созданный с помощью Набор средств Microsoft Visual Studio для приложений (VSTA), Visual Studio 2005 с Набор средств Microsoft Visual Studio 2005 для Microsoft Office System 2007 или Visual Studio 2008 с Visual Studio Tools для Office, инициализирует переменную thisApplication в методе _Startup класса кода формы, которую можно использовать для доступа к элементам интерфейса Application. В следующем примере свойства Name и Version интерфейса Application используются для возвращения имени и номера версии запущенного интерфейса InfoPath. Эти сведения отображаются в окне сообщения с помощью метода Alert интерфейса UI2.

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 в качестве обычного нового перевода строки, прерывающего текст и помещающего его на новую строку окна сообщения. Чтобы явно использовать значение новой строки, указанное для текущей среды и платформы, используйте вместо этого свойство Environment.NewLine, как показано в следующем примере.

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

Доступ к данным из базового XML-документа формы

Разработчики могут использовать интерфейс XDocument для получения доступа к сведениям о базовом XML-документе формы, включая ссылку на модель XML DOM, где содержатся исходные XML-данные формы.

В следующем примере в первом окне сообщения отображаются некоторые данные, которые доступны из интерфейса 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.

Доступ к данным из файла определения формы

Сведения о файле .xsf для формы, включая ссылку XML DOM на содержащиеся в ней исходные XML-данные, также можно получить с помощью интерфейса XDocument. Доступ к этим сведениям предоставляется с помощью свойства Solution, которое возвращает ссылку на интерфейс SolutionObject.

В следующем примере в первом оповещении отображаются некоторые данные, которые доступны через интерфейс SolutionObject, например расположение URI-идентификатора (с помощью свойства URI) и номер его версии (с помощью свойства Version). В следующем оповещении используется свойство DOM интерфейса SolutionObject для отображения исходных XML-данных файла .xsf.

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)