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


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

При работе с шаблоном формы InfoPath можно написать код для доступа к представлениям формы, а затем выполнить различные действия с данными, содержащимися в представлении. Объектная модель, совместимая с InfoPath 2003, поддерживает доступ к представлениям форм посредством использования элементов интерфейса ViewObject.

Обзор интерфейса ViewObject

Интерфейс ViewObject предоставляет следующие методы и свойства, которые могут использоваться разработчиками форм для взаимодействия с представлением InfoPath.

ЗаметкаЗаметка

Методы и свойства интерфейса ViewObject недоступны во время события OnLoad.

Имя Описание

Метод DisableAutoUpdate

Отключает синхронизацию модели XML DOM и представления.

Метод EnableAutoUpdate

Включает синхронизацию модели XML DOM и представления.

ExecuteActionM:Microsoft.Office.InfoPath.UserPermissionCollection.Remove(System.String)

Выполняет действие редактирования InfoPath.

ExportM:Microsoft.Office.InfoPath.Permission.ApplyPolicy(System.String)

Экспортирует представление в файл указанного формата.

Метод ForceUpdate

Синхронизирует модель XML DOM и представление.

GetContextNodesM:Microsoft.Office.InfoPath.Window.Close(System.Boolean)

Возвращает ссылку на интерфейс XMLNodesCollection, основываясь на указанном XML-узле и контексте представления или текущем выделении в представлении.

Метод GetSelectedNodes

Возвращает ссылку на интерфейс XMLNodesCollection, основываясь на текущем выделении в представлении.

SelectNodesM:Microsoft.Office.InfoPath.AdoQueryConnection.BuildSqlFromXmlNodes(System.Xml.XPath.XPathNavigator)

Выбирает диапазон XML-узлов в представлении.

SelectTextM:Microsoft.Office.InfoPath.AdoQueryConnection.BuildSqlFromXmlNodes(System.Xml.XPath.XPathNavigator)

Выбирает текст, содержащийся в указанном XML-узле в представлении.

SwitchViewM:Microsoft.Office.InfoPath.UserPermissionCollection.Remove(System.String)

Переключает форму InfoPath в указанное представление.

NameP:Microsoft.Office.InfoPath.Window.Width

Возвращает строковое значение, указывающее имя текущего представления.

WindowP:Microsoft.Office.InfoPath.Window.Top

Возвращает ссылку на интерфейс WindowObject, который осуществляет доступ к объекту Window, связанному с представлением.

ЗаметкаЗаметка

Объектная модель, совместимая с InfoPath 2003, также предоставляет интерфейс ViewInfosCollection, который может использоваться для получения сведений обо всех представлениях, реализованных в форме.

Использование интерфейса ViewObject

Доступ к интерфейсу ViewObject предоставляется через свойство View интерфейса XDocument (которое доступно через переменную thisXDocument, которая инициализируется в методе _Startup класса кода формы). Например, в следующем примере кода демонстрируется использование метода Alert интерфейса UIObject для отображения окна сообщения с именем текущего представления, связанного с базовым XML-документом формы.

thisXDocument.UI.Alert("Current view name: " + 
   thisXDocument.View.Name);
thisXDocument.UI.Alert("Current view name: " & _
   thisXDocument.View.Name)

Во всех формах InfoPath содержится хотя бы одно представление по умолчанию. Однако приложение InfoPath также поддерживает создание нескольких представлений базового XML-документа формы. При наличии в форме нескольких представлений объект View можно использовать для работы с активным в данный момент представлением. Активное представление можно программно изменить с помощью метода SwitchView для объекта View, как демонстрируется в следующем примере кода.

thisXDocument.View.SwitchView("MySecondView");
thisXDocument.View.SwitchView("MySecondView")

Предыдущий пример по переключению представления будет работать только после открытия формы. Чтобы задать представление по умолчанию во время события OnLoad, используйте свойство IsDefault интерфейса ViewInfoObject, как показано в следующем примере.

thisXDocument.ViewInfos["MyDefaultView"].IsDefault = true;
thisXDocument.ViewInfos("MyDefaultView").IsDefault = True