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


Практическое руководство. Доступ к данным форм с помощью объектной модели 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).