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