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


Практическое руководство. Работа с представлениями

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

Обзор класса View

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

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

Методы и свойства класса View недоступны во время события Loading.

Имя Описание

DisableAutoUpdateM:Microsoft.Office.InfoPath.Window.Activate

Отключает автоматическую синхронизацию между базовым XML-документом формы и связанным представлением.

EnableAutoUpdateM:Microsoft.Office.InfoPath.Window.Activate

Включает автоматическую синхронизацию между базовым XML-документом формы и связанным представлением.

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

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

ExecuteActionM:Microsoft.Office.InfoPath.Window.Close

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

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

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

ForceUpdateM:Microsoft.Office.InfoPath.FormErrorCollection.DeleteAll

Выполняет синхронизацию между базовым XML-документом формы и связанным представлением.

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

Возвращает ссылку на объект XPathNodeIterator для прохода по возвращенным XML-узлам, начиная с указанного узла.

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

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

GetSelectedNodesM:Microsoft.Office.InfoPath.Window.Activate

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

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

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

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

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

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

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

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

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

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

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

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

Создает сообщение электронной почты, содержащее текущее представление.

ViewInfoP:Microsoft.Office.InfoPath.Window.Active

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

WindowP:Microsoft.Office.InfoPath.Window.Width

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

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

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

Использование класса View

Доступ к классу View предоставляется посредством свойства CurrentView класса XmlForm, который доступен с помощью ключевого слова this (C#) или Me (Visual Basic). Например, в следующем примере кода демонстрируется отображение окна сообщения с именем активного в данный момент представления.

MessageBox.Show("Current view name: " + 
   this.CurrentView.Name);
MessageBox.Show("Current view name: " & _
   Me.CurrentView.Name)

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

this.ViewInfos.SwitchView("MySecondView");
Me.ViewInfos.SwitchView("MySecondView")

Приведенное в предыдущем примере переключение представления будет работать только после открытия формы. Чтобы задать представление по умолчанию во время события OnLoad, воспользуйтесь свойством Initial класса ViewInfoCollection, как показано в следующем примере. Однако обратите внимание, что это значение применяется только после сохранения и повторного открытия формы.

this.ViewInfos.Initial = this.ViewInfos["MyInitialView"];
Me.ViewInfos.Initial = Me.ViewInfos["MyInitialView"];