Практическое руководство. Доступ к данным форм с помощью объектной модели InfoPath 2003
Если требуется расширить возможности формы InfoPath, то зачастую требуется обеспечить программный доступ к сведениям о базовом XML-документе формы или к данным, содержащимся в этом XML-документе, а также выполнить некоторые действия над XML-документом. Объектная модель InfoPath поддерживает доступ и обработку базового XML-документа формы посредством использования интерфейса XDocumentв сочетании с интерфейсом XDocumentsCollection.
Интерфейс XDocument является одним из наиболее полезных в объектной модели InfoPath, поскольку предоставляет ряд свойств, методов и событий, которые не только взаимодействуют с базовым XML-документом формы, но и выполняют многие действия, доступные в интерфейсе пользователя InfoPath. В проекте с управляемым кодом, созданным с использованием объектной модели, совместимой с InfoPath 2003, переменная с типом XDocument, которая называется thisXDocument
, автоматически определяется в методе _StartUp
класса, содержащего обработчики событий в коде формы проекта. Переменную thisXDocument
в коде формы можно использовать для доступа к интерфейсу XDocument и его элементам.
Обзор интерфейса XDocumentsCollection
Интерфейс XDocumentsCollection предоставляет следующие методы и свойства, которые могут использоваться разработчиками форм для управления объектами XDocument, содержащимися в семействе.
Имя | Описание |
---|---|
CloseM:Microsoft.Office.InfoPath.Window.Close(System.Boolean) |
Закрывает указанную форму. |
NewM:Microsoft.Office.InfoPath.Window.Close(System.Boolean) |
Создает новую форму на основе существующей формы. |
NewFromSolutionM:Microsoft.Office.InfoPath.UserPermissionCollection.Remove(System.String) |
Создает новую форму на основе существующего шаблона формы. |
NewFromSolutionWithDataM:Microsoft.Office.InfoPath.UserPermissionCollection.Remove(System.String) |
Создает новую форму InfoPath с использованием указанных XML-данных и шаблона формы. |
OpenM:Microsoft.Office.InfoPath.Window.Close(System.Boolean) |
Открывает указанную форму. |
Свойство Count |
Возвращает количество объектов XDocument в семействе. |
ItemP:Microsoft.Office.InfoPath.FormErrorCollection.Item(System.Int32) |
Возвращает ссылку на указанный объект XDocument. |
Обзор интерфейса XDocument
Интерфейс XDocument предоставляет следующие методы и свойства, которые могут использоваться разработчиками форм для взаимодействия с базовым XML-документом формы и выполнения действий над ним.
Имя | Описание |
---|---|
GetDataVariableM:Microsoft.Office.InfoPath.UserPermissionCollection.Remove(System.String) |
Возвращает строковое значение указанной переменной данных. |
GetDOMM:Microsoft.Office.InfoPath.UserPermissionCollection.Remove(System.String) |
Возвращает ссылку на модель XML DOM, связанную с указанным объектом DataObject. |
ImportFileM:Microsoft.Office.InfoPath.UserPermissionCollection.Remove(System.String) |
Импортирует (или объединяет) указанную форму в открытую в данный момент форму. |
Метод PrintOut |
Распечатывает текущее представление формы. |
Метод Query |
Возвращает данные из адаптера данных, связанного с формой. |
Метод Save |
Сохраняет открытую в данный момент форму. |
SaveAsM:Microsoft.Office.InfoPath.Window.Close(System.Boolean) |
Сохраняет открытую в данный момент форму с указанным именем. |
Метод SetDataVariable |
Задает значение указанной переменной данных. |
Метод Submit |
Отправляет форму в соответствии с операцией отправки, указанной в режиме конструктора. |
DataObjectsP:Microsoft.Office.InfoPath.Window.Width |
Возвращает ссылку на семейство DataObjects. |
Свойство DOM |
Возвращает ссылку на модель XML DOM, заполненную исходными XML-данными формы. |
ErrorsP:Microsoft.Office.InfoPath.FormError.FormErrorType |
Возвращает ссылку на семейство Errors. |
Свойство Extension |
Возвращает ссылку на объект, представляющий все функции и переменные, содержащиеся в файле кода формы. |
Свойство IsDirty |
Возвращает значение Boolean, указывающее факт изменения данных в форме. |
Свойство IsDOMReadOnly |
Возвращает значение Boolean, указывающее наличие атрибута только для чтения у модели XML DOM. |
Свойство IsNew |
Возвращает значение Boolean, указывающее факт сохранения формы после ее создания. |
Свойство IsReadOnly |
Возвращает значение Boolean, указывающее наличие режима формы только для чтения. |
Свойство IsSigned |
Возвращает значение Boolean, указывающее наличие подписи для формы. |
Свойство Language |
Указывает или возвращает строковое значение языка, используемого для формы. |
Свойство QueryAdapter |
Возвращает ссылку на объект адаптера данных. |
Свойство Solution |
Возвращает ссылку на объект Solution. |
Свойство UI |
Возвращает ссылку на объект UI. |
Свойство URI |
Возвращает строковое значение, содержащее URI-идентификатор формы. |
Свойство View |
Возвращает ссылку на объект View. |
ViewInfosP:Microsoft.Office.InfoPath.Window.Width |
Возвращает ссылку на семейство ViewInfos. |
Использование семейства XDocuments и интерфейсов XDocument
Доступ к интерфейсу XDocumentsCollection предоставляется через свойство XDocuments интерфейса Application. В проекте с управляемым кодом, созданным с использованием объектной модели, совместимой с InfoPath 2003, доступ к интерфейсу XDocumentsCollection можно получить с помощью переменной thisApplication
, которая создается в методе _StartUp
кода формы проекта. В следующих строках кода создается переменная, которая указывает на интерфейс XDocumentsCollection текущего проекта.
XDocumentsCollection xdocs;
xdocs = thisApplication.XDocuments;
// Write code here to work with the XDocumentsCollection.
Dim xdocs As XDocumentsCollection
xdocs = thisApplication.XDocuments
' Write code here to work with the XDocumentsCollection.
В проекте с управляемым кодом, созданным с использованием объектной модели, совместимой с InfoPath 2003, доступ к интерфейсу XDocument можно получить через переменную thisXDocument
, которая создается в методе StartUp
кода формы проекта. В следующих строках кода переменная thisXDocument
используется для доступа к интерфейсу XDocument текущего проекта для отображения в оповещении URI-идентификатора открытой в данный момент формы.
thisXDocument.UI.Alert(thisXDocument.URI);
thisXDocument.UI.Alert(thisXDocument.URI)
Заметка |
---|
Если интерфейс XDocument используется для доступа к базовому XML-документу формы, то доступ осуществляется к XML-документу, связанному с открытой в данный момент формой. |
Основным свойством интерфейса XDocument является свойство DOM. Это свойство возвращает ссылку на модель XML DOM, заполненную исходными XML-данными формы. При использовании свойства DOM можно применять все свойства и методы, которые поддерживаются моделью XML DOM. Например, в следующем коде используется свойство xml модели XML DOM для возвращения и отображения всего содержимого базового XML-документа формы.
string xmldoc;
xmldoc = thisXDocument.DOM.xml;
// Display xml.
thisXDocument.UI.Alert(xmldoc);
Dim xmldoc As String
xmldoc = thisXDocument.DOM.xml
' Display xml.
thisXDocument.UI.Alert(xmldoc)
Заметка |
---|
Дополнительные сведения о модели XML DOM и всех поддерживаемых ею свойствах и методах см. в документации MSXML 5.0 SDK в справочной системе по редактору сценариев Microsoft (MSE). |