Практическое руководство. Работа с представлениями
При работе с шаблоном формы 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"];