Наверх

Работаем с формами: Microsoft Office InfoPath 2007 и Microsoft Office Forms Server

Архив
Время чтения: 14 минут
0
Работаем с формами: Microsoft Office InfoPath 2007 и Microsoft Office Forms Server

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

Алексей Федоров

Microsoft InfoPath 2003

Microsoft InfoPath 2007

   Улучшения в дизайнерах шаблонов

   Новые сценарии развертывания

   Интеграция InfoPath с клиентскими приложениями Office 2007

   Новая объектная модель InfoPath 2007

   Возможность хостинга InfoPath

   Поддержка Workflow

Microsoft InfoPath 2003

Поддержка создания и заполнения форм появилась в предыдущей версии Microsoft Office — в изданиях Office Professional и Enterprise Edition — в виде отдельного продукта — Microsoft InfoPath 2003. Данный продукт представлял собой клиентское приложение, позволявшее создавать, редактировать и заполнять формы на основе XML, с возможностями проверки вводимых данных и задания алгоритмов такой проверки, связи с различными источниками данных, включая корпоративные бизнес-приложения, работы в офлайн-режиме (отсоединенном режиме) и реализации бизнес-логики на скриптовых и .NET-языках. В пакете обновления InfoPath 2003 SP1 данная функциональность была расширена.

Несмотря на популярность InfoPath 2003 и множество решений на его основе, в этом продукте имелся ряд проблем. Одной из наиболее часто упоминаемых проблем являлась необходимость установки продукта на все клиентские компьютеры, где предполагается работать с формами InfoPath. Также возникали сложности с офлайн-режимом, наблюдалась недостаточная интеграция с другими продуктами Microsoft и продуктами сторонних фирм. Помимо этого создание расширений и реализация сложной бизнес-логики требовали существенных навыков в разработке и комплексного кодирования в Visual Studio.

Microsoft InfoPath 2007

В новом продукте — InfoPath 2007 — учтены многие недостатки предыдущей версии продукта и произведен ряд изменений и дополнений, которые мы рассмотрим далее. К ним, в частности, относятся:

  • улучшения в дизайнерах шаблонов;
  • новые сценарии развертывания с использованием InfoPath Forms Services (IFS);
  • интеграция InfoPath с клиентскими приложениями Office 2007;
  • новая объектная модель InfoPath 2007 на управляемом коде;
  • возможность хостинга InfoPath 2007 в разрабатываемых приложениях.
  • поддержка Workflow.

Помимо этого отметим следующие возможности, появившиеся в InfoPath 2007: создание документов PDF или XML Paper Specification (XPS) и заполненных форм для их архивирования, защита содержимого форм с помощью механизмов Information Rights Management (IRM).

Разработчикам предлагается поддержка COM-дополнений (COM Add-in), использующих интерфейс IDTExtensibility2 для реализации методов, которые будут реагировать на события, связанные с запуском и завершением работы InfoPath. Новый объект ApplicationEvents поддерживает события на уровне приложения, например WindowActivate и XdocumentOpen, что позволяет создавать в COM-дополнениях обработчики событий на уровне окон и документов.

Улучшения в дизайнерах шаблонов

Дизайнер шаблонов работает в трех режимах: режиме обратной совместимости с InfoPath 2003, режиме поддержки только InfoPath 2007 и режиме поддержки InfoPath 2007 и служб Forms Services. В последнем случае созданные средствами дизайнера форм шаблоны (файлы с расширением *.xsn) могут быть преобразованы в формы, доступные для заполнения в Web-браузере. Для этого достаточно включить опцию Web Browser Enabled в диалоговой панели Design a Form (рис. 1).

Диалоговая панель Design A Form. ecm-journal.ru

Рис. 1. Диалоговая панель Design A Form

Специальный компонент — Design Checker (рис. 2) — помогает автоматически проверить форму на совместимость со всеми версиями клиентов, в режиме поддержки только InfoPath 2007 становятся доступны новые интерфейсные элементы, а повторное использование форм достигается за счет применения элементов шаблонов (Template Parts), средств импорта шаблонов и данных, а также благодаря подключению к библиотекам соединений на уровне SharePoint Services — WSS Data Connection Libraries. Зависимости в формах могут быть просмотрены с помощью специального встроенного средства — Logic Inspector.

Design Checker. ecm-journal.ru

Рис. 2. Design Checker

При создании шаблонов форм, поддерживаемых в Web-браузере, бизнес-логика может быть написана на языках C# и Visual Basic .NET — только из этих языков можно вызывать новую объектную модель InfoPath, реализованную на управляемом коде и расположенную в сборке Microsoft.Office.InfoPath.

Для форм, которые предполагается использовать в Web-браузере, поддерживаются следующие интерфейсные элементы:

Интерфейсные элементы для Web-браузера. ecm-journal.ru

Нижеперечисленные интерфейсные элементы не поддерживаются:

Неподдерживаемые интерфейсные элементы для Web-браузера. ecm-journal.ru

Развертывание шаблонов InfoPath может проходить по одному из следующих сценариев: как устанавливаемый файл (MSI или JS), копирование в сетевой каталог, пересылка по электронной почте или получение через библиотеку SharePoint. В InfoPath 2007 появился ряд новых сценариев развертывания, которые мы рассмотрим в следующем разделе.

Новые сценарии развертывания

Для поддержки различных сценариев работы с формами в состав Microsoft Office 2007 включен новый серверный продукт — Microsoft Office Forms Server. В его задачу входит обеспечение возможности заполнения форм InfoPath с помощью обычного Web-браузера — от пользователей не требуется устанавливать клиентское приложение InfoPath. Эта функциональность построена на основе платформы Microsoft Windows SharePoint Services 3.0.

Соответственно у пользователей появляется возможность заполнять формы как с помощью клиентского приложения InfoPath, так и без него — непосредственно через Web-браузер. Простой сценарий развертывания применяется для шаблонов, которые не содержат кода. В противном случае требуется двухшаговое развертывание с привлечением администратора, разрешающего выполнение таких шаблонов на сервере.

На рис. 3 показаны различные сценарии использования InfoPath 2007 — как клиентского приложения для заполнения шаблонов форм, как дизайнера форм, как клиента к серверной поддержке форм и т.п.

Сценарии использования InfoPath 2007. ecm-journal.ru

Рис. 3. Различные сценарии использования InfoPath 2007

Интеграция InfoPath с клиентскими приложениями Office 2007

В InfoPath 2007 расширены возможности интеграции с другими продуктами из семейства Microsoft Office 2007 — в первую очередь с электронными письмами в Outlook (теперь можно заполнять формы непосредственно в Outlook) и с информационной панелью документов (Document Information Panel), которая доступна в ряде продуктов Office 2007, а также реализована возможность ассоциации форм с расширенными механизмами Workflow, что открывает новые интересные возможности для использования форм.

Помимо этого в InfoPath 2007 поддерживается преобразование документов Word и электронных таблиц Excel в шаблоны форм, что позволяет, например, легко превратить существующие документы в шаблоны для дальнейшего применения (рис. 4).

Средство импорта в InfoPath 2007. ecm-journal.ru

Рис. 4. Средство импорта в InfoPath 2007

Разработчикам будет интересно узнать о том, что средства преобразования шаблонов форм в InfoPath 2007 являются стандартными COM-компонентами с поддержкой интерфейсов автоматизации через интерфейсы IFormTemplateConverter и IFormTemplateConverter2. Реализация интерфейса IFormTemplateConverter обеспечивает совместимость с InfoPath 2003, а интерфейс IFormTemplateConverter2 обеспечивает новую для InfoPath 2007 функциональность. В библиотеке IPDESIGN.DLL, где доступны вышеупомянутые интерфейсы, также имеются интерфейсы IconversionManager и IConversionManager2, которые могут использоваться для создания собственных средств преобразования, расширяющих набор стандартных средств, включенных в комплект поставки InfoPath 2007.

Помимо этого в InfoPath 2007 поддерживается возможность создания собственных средств импорта данных — для этого в библиотеке IPEDITOR.DLL предусмотрены интерфейсы IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl и IPropertyBag.

Новая объектная модель InfoPath 2007

Как уже было отмечено выше, в InfoPath 2007 появилась новая объектная модель (рис. 5), полностью реализованная на управляемом коде, — теперь больше не требуется использовать Primary Interop Assemblies (PIA) для написания кода бизнес-логики, ассоциированной с формами. Создание кода возможно либо в Visual Studio Tools for Applications (VSTA) — компоненте, встроенном в InfoPath 2007, — либо в Visual Studio Tools for Office (VSTO).

Объектная модель InfoPath 2007. ecm-journal.ru

Рис. 5. Объектная модель InfoPath 2007

Объектная модель на управляемом коде реализована в виде двух сборок, имеющих одинаковое название — Microsoft.Office.Infopath.dll. Первая сборка реализует полную объектную модель InfoPath, которая содержит типы и методы, поддерживаемые только при работе с формами через InfoPath 2007, а вторая — подмножество объектной модели InfoPath и предназначена для поддержки работы с формами через Web-браузер. Выбор той или иной сборки зависит от включения или отключения опции Web browser enabled в диалоговой панели Design a Form в начале дизайна шаблона формы.

Для администрирования сервера форм предоставляется соответствующая объектная модель, реализованная в сборке Microsoft.Office.InfoPath.Server.dll.

Возможность хостинга InfoPath

Еще одной новинкой в InfoPath 2007 является компонентизация продукта, благодаря которой у разработчиков появляется возможность хостинга InfoPath в Windows- и Web-приложениях.

В случае Windows-приложений разработчикам доступны компонент InfoPath ActiveX Control (объект InfoPathEditor в библиотеке IPEDITOR.DLL) и компонент на управляемом коде FormControl (оболочка на управляемом коде для упомянутого выше ActiveX-компонента, реализованная в пространстве имен Microsoft.Office.InfoPath.FormControl.dll), которые могут использоваться для создания необходимой функциональности в приложениях. К возможным сценариям таких приложений можно отнести:

  • приложение, позволяющее выбирать и загружать формы, которые максимально подходят для той или иной задачи;
  • приложение, автоматически заполняющее ряд полей формы данными, которые получены из внешних источников;
  • приложение, автоматически генерирующее формы из предопределенных фрагментов.

В таблице показаны свойства и методы объекта InfoPathEditor.

Меню и панели инструментов InfoPath не доступны через описанную выше объектную модель — каждая команда в меню редактора InfoPath доступна через интерфейс IOLECommandTarget. Хост-приложение может выполнять эти команды через указанный интерфейс, что позволяет разработчику самостоятельно выбрать уровень доступной функциональности (полностью, частично и т.п.).

Для Web-приложений, которым требуется хостинг InfoPath, предоставляется серверный ASP .NET-компонент XmlFormView, позволяющий пользователям либо заполнять новые формы, либо считывать и редактировать уже заполненные формы. С помощью программного интерфейса можно управлять различными аспектами работы с формами. Например, используя свойство XmlFormView.XmlForm.MainDataSource, можно получить доступ к XML DOM-представлению формы, что позволяет реализовывать различные сценарии, связанные с заполнением формы, с подключением к источникам данных и т.п. Другой пример — это метод XmlFormView.XmlForm.CurrentView.ExecuteAction(...), активизация которого позволяет программным образом выполнять действия, доступные пользователям посредством манипуляции мышью, например добавление рядов к таблицам.

Свойства и методы объекта InfoPathEditor

Свойство/метод

Описание

Метод CloseDocument

Закрывает ранее открытый XML-документ

Свойство DataConnectionBaseURL

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

Метод FlushDocument

Сохраняет загруженный документ

Свойство Host

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

Свойство HostName

Возвращает или устанавливает имя хост-приложения

Метод Load

Загружает указанный XML-документ из файловой системы

Метод LoadFromStream

Загружает указанный XML-документ из потока (поддерживается интерфейс IStream)

Метод NewFromSolution

Создает новую форму InfoPath на основе указанного шаблона

Метод NewFromSolutionWithData

Создает новую форму InfoPath, используя указанные данные в формате XML и на основе указанного шаблона

Метод SetInitEventHandler

Возвращает объект, применяемый для работы с объектной моделью хост-приложения

Метод SetSubmitToHostEventHandler

Возвращает объект, используемый для передачи данных хост-приложению

Свойство XDocument

Возвращает объект типа XDocument, применяемый для доступа к объектной модели InfoPath. При доступе к этому свойству из сборки Microsoft.Office.InfoPath.FormControl.dll оно имеет имя XmlForm и возвращает объект XmlForm, который предоставляет ту же самую объектную модель, что и объект XDocument для объектной модели COM

Поддержка Workflow

Еще одна новинка в InfoPath 2007 — это возможность комбинации собственно InfoPath, Windows Workflow Foundation (WF) и Windows SharePoint Services для создания нового класса решений, поддерживающих различные сценарии реализации бизнес-логики. К таким сценариям можно отнести отслеживание клиентских запросов, подтверждение запросов на отпуск, авансовых отчетов и т.п. К базовым наборам активностей, реализованных в Windows Workflow Foundation, в Office 2007 добавлены специфичные для офисных задач библиотеки — Office 2007 Activity Library, которые могут быть расширены стандартными для Workflow средствами (через Visual Studio .NET) и добавлены к библиотекам активностей Office 2007 как стандартные .NET-сборки.

Информация по системе Microsoft Office 2007 доступна на сайте Microsoft по адресу: https://msdn.microsoft.com/office/future/default.aspx.

Дополнительную информацию для разработчиков можно найти на сайте MSDN в разделе, посвященном Office, по адресу: https://msdn.microsoft.com/office/.

Источник: КомпьютерПресс №8'2006

Чтобы прочитать эту статью до конца,
или зарегистрируйтесь

Комментарии 0

Чтобы прокомментировать, или зарегистрируйтесь