Будь в форме: InfoPath 2003
20 октябрь, 2003 - 23:00Сергей Митилино
Путь данных
Несмотря на принадлежность к офисному пакету, InfoPath нужно рассматривать
как часть комплексной информационной системы, каждая из которых решает три основные
задачи: ввод данных, их обработка и вывод. InfoPath вполне в состоянии заменить
практически весь спектр программных средств для решения первой и частично обеспечить
просмотр накопленных сведений в стандартизованном виде. Фактически же новая программа
является визуальным инструментом конструирования и заполнения форм.
|
Внешний вид формы InfoPath
никак не выдает использования XML
|
Секрет универсальности InfoPath заключается в использовании языка XML. Типичные
варианты применения можно почерпнуть как из документации Microsoft, так и из весьма
длинного списка готовых форм, что поставляются вместе с пакетом. Так, Project
Plan содержит раздел с информацией об авторе, фазах реализации проекта, бюджетную
часть, дополнительные заметки. Причем каждая секция расширяется по мере ввода
новых данных, а при форматировании можно пользоваться всеми стандартными средствами
оформления и редактирования текста, как и в любом ином приложении MS Office. Другие
примеры дают представление о широте применимости технологии: Expense Report, Sales
Report, Resume, Meeting Agenda и т. д.
Хороший пример приведен в кратком руководстве "InfoPath: Improving Your Business With Desktop XML Solutions" от Robert Francis Group, опубликованном на сайте Microsoft. По сюжету некая Мери -- менеджер крупной компании, и одной из ее повседневных обязанностей является обеспечение проведения регулярных совещаний инженеров, работающих в различных группах. На таких "летучках" сотрудники обсуждают состояние компонентов общего проекта и информируют друг друга о проделанной работе. Процесс абсолютно неформализованный, и документация нестандартизована.
Чтобы упорядочить обмен информацией и уменьшить время подготовки участников к обсуждению, Мери решила применить InfoPath. Она потратила всего пару часов на изучение программы (благодаря простоте интерфейса и парадигмы конструирования форм), а затем за несколько часов подготовила документ, с помощью которого любой сотрудник способен самостоятельно ввести информацию, относящуюся к теме совещания. Форма в качестве источника и хранилища данных использовала корпоративный SQL Server (понадобилось лишь спроектировать таблицу, а затем указать связи между полями). Правда, для вывода консолидированной информации по всем группам ей пришлось создать Web-страницу уже во FrontPage. Теперь инженеры могут самостоятельно готовить отчеты о ходе работ, публиковать их, а также отслеживать положение дел в других группах с помощью Web-интерфейса.
Интерактивные формы при некотором уровне квалификации их разработчиков могут сыграть роль универсального интерфейса к корпоративной информационной системе. В первую очередь, речь идет о таких решениях, как Web-службы, БД (SQL Server) и SharePoint-порталы, поскольку с ними документы InfoPath способны взаимодействовать напрямую. Если потребуется передавать данные в какую-либо иную среду, придется задуматься о промежуточном XML-шлюзе. Формы можно публиковать на Web- и SharePoint-узлах (для загрузки либо просмотра конкретных представлений), однако работать с ними умеет только InfoPath. На это следует обратить внимание, так как программа доступна либо в виде отдельного продукта, либо в корпоративной поставке, она не входит в обычные коробочные версии Office 2003. В идеале хотелось бы получить полноценную поддержку в броузерах, но информации о подобных перспективах пока нет.
Орудия труда
Процесс создания интерактивного документа-формы мало отличается от подготовки
форм-окон в любой визуальной среде программирования для Windows, например Visual
Basic. Если вы начинаете проектировать "с чистого листа", программа
действительно продемонстрирует пустую страницу, напоминающую рабочее поле текстового
редактора. В ней можно набирать и оформлять текст, устанавливать отступы и т.
д. С функциональной точки зрения интерфейс выглядит гибридом FrontPage и Word.
Более того, пользователю, заполняющему форму в InfoPath, будут доступны те же
инструменты -- для выделения, проверки орфографии и пр.
Правая часть главного окна, как и в других приложениях Office 2003, отведена под панели задач (Controls, Layout, Views, Font и еще множество других). Начать стоит с Design Tasks, которая описывает всю последовательность проектирования формы и обеспечивает соответствующими заготовками и инструментами. Сначала необходимо определить внешний вид документа (Layout), затем наполнить шаблон активными элементами (Controls), потом выбрать источник данных (Data Source) и указать, какое представление (View) будет использоваться -- для ввода или генерации запросов.
InfoPath сразу предлагает автору ряд стандартных модифицируемых шаблонов и цветовых схем оформления интерактивного документа, отталкиваясь от которых можно начать конструировать собственное произведение "офисного искусства". Предполагается, что форма будет структурирована как таблица или набор таблиц с единой шапкой. Отдельные фрагменты при необходимости оформляются как Optional и Repeating Section. Первое означает появление/скрытие секции в зависимости от потребностей человека, заполняющего документ (чтобы добавить секцию, достаточно щелкнуть на текстовой метке-приглашении). Второе позволяет описать группу полей, которые будут многократно повторяться, -- пользователь получит возможность расширять форму подобно тому, как мы увеличиваем таблицу в Word, попросту вставляя дополнительные строки.
На вкладке Controls содержится список доступных элементов управления. В их числе Rich Text Box, Button, Option Button, Check Box, List Box, Picture, Date Picker и многие другие, знакомые по VB и VBA. У них есть свойства, которые редактируются. Например, Button имеет такие параметры, как текст подписи, размеры, подсказку. Практически любому элементу можно поставить в соответствие наборы скриптов на JScript или VBScript для обработки связанных с ними событий -- код создается и редактируется в стандартном Microsoft Script Editor.
В окне свойств некоторых элементов, обеспечивающих пользовательский ввод, имеется кнопка
Data Validation. С ее помощью создаются правила верификации данных. Реакция и методы проверки либо выбираются из списка опций InfoPath, либо программируются вручную. Похожее назначение и у кнопки
Conditional Formatting, определяющей поведение (трансформации) формы в зависимости от введенной информации.
По завершении стадии функционального дизайна приходит черед настроить источники данных -- Data Source. На соответствующей вкладке проектировщик имеет возможность подкорректировать структуру данных, которыми оперирует форма, проверить соответствие типов. Отсюда конкретные поля и элементы могут перетаскиваться прямо на рабочее пространство документа.
В самом конце создаются "представления" (Views). Менять можно все: дизайн, количество полей ввода, объем одновременно отображаемых данных. Таким образом, на единой функционально-информационной базе фактически создается множество форм, и все они имеют свое назначение: просмотр, ввод, печать, рассылка по сети, передача другим сотрудникам. Каждое представление хранится в виде файла XSLT.
Очень интересна возможность проектирования форм на основе существующих источников данных. В частности, для БД Access в считанные минуты удалось получить каркас, содержащий все необходимые поля из различных таблиц. Пока InfoPath поддерживает не слишком много источников данных, но вполне достаточно для Microsoft-ориентированного предприятия: SQL Server, Access, Web-сервисы и просто XML-файл (данные или схема). При работе с БД программа автоматически создает два представления: для просмотра содержимого таблиц и для составления запросов.
Донести творение рук своих до начальства или других сотрудников можно с помощью Publishing Wizard, который отправляет форму в общую сетевую папку, на корпоративный Web-сервер или SharePoint-портал.
Машинный отсек
Несмотря на видимое разнообразие инструментов создания интерактивных документов,
в основе всех их лежит XML. Формы записываются как XSN- или XML-файлы. Первый
формат используется для хранения шаблонов и является по сути CAB-архивом, содержащим
не только документ, но и вспомогательные файлы, второй -- для готовых форм, подлежащих,
скорее, заполнению, чем редизайну. Интерактивность достигается за счет скриптов,
построенных на основе XPath (XML Path) и DOM (Document Object Model), что делает
их максимально близкими для Web-дизайнеров и программистов. Представления, как
уже говорилось, сохраняются в формате XSLT.
Однако за все (в данном случае -- простоту и универсальность) приходится платить. InfoPath легко опровергает тезис, что "Celeron 1 GHz и 256 MB ОЗУ все еще достаточно для любых офисных задач". Даже более мощная конфигурация -- Pentium III 733 MHz и 512 MB -- с трудом удовлетворяет реальные потребности программы.
Кроме того, InfoPath 2003 уже успел заслужить свою толику критики за не слишком
аккуратные XML-файлы. Как отмечают специалисты, это очень похоже на традиционную
болезнь Microsoft Word, перегружающего HTML-документы лишними тегами. Простенькая
форма, размер которой при проектировании вручную вряд ли превысил бы 15 KB, в
исполнении InfoPath "потянула" на все 90 KB. Примерно столько же занимает
графический "снимок" сгенерированной страницы. Впрочем, подобные явления
вообще характерны для универсальных продуктов, рассчитанных, по большому счету,
на неспециалистов и стремящихся максимально отдалить их от технологических подробностей.