Электронные формы в Microsoft Word 2007: простые формы

Ну все, хватит общих разглагольствований, давайте посмотрим, как и чего можно добиться, взяв за основу Microsoft Word 2007.
Итак, представьте себе такую задачу — к Вам обращается секретарь или бухгалтер занятый(ая) обработкой заявлений на отпуск от работников вашей компании. В вашей компании довольно высокий уровень автоматизации и все основные документы почти полностью ходят только в электронном виде (печатают документы только на последних этапах, и только те, где нужна живая подпись). Для упрощения заполнения наиболее частых документов давно разработаны полуготовые шаблоны, в которых вместо специльно выделенных подстановочных строк нужно вписать свои. Что-то вроде шаблона, который приведен на рисунке:

Форма шаблона совсем не сложная, но всегда найдется кто-то "особо одаренный", который умудится что-то напутать, написать лишнего или просто случайно стереть лишнее. А компания у вас достаточно большая чтобы процент таких одаренных стал бы серьезной проблемой. А потому, за работу!
Первым делом, вместо строчек вида [ФИО заявителя] мы вставим поля ввода. Найти эти поля можно на закладке "Разработчик", в группе "Элементы управления":

Для задания наших полей мы воспользуемся следующими элементами:
- Текст для поля [ФИО заявителя]
- Поле со списком (или раскрывающийся список) для полей [год_нач] и [год_кон]
- Выбор даты для [дата_нач], [дата_кон], [дата_вых] и [дата_подписи]
В результате наш документ приобретет примерно следующий вид (все прежние поля ввода заменились серым текстом с надписями навроде "Место для ввода даты", причем при если щелкнуть на любой из них будет видно, что это поле ввода):

Теперь нужно пройтись по всем только-что вставленным полям ввода и указать для них дополнительные настройки. Вызвать окно свойств для поля можно выбрав его, и нажав кнопку "Свойства", все в той же группе "Элементы управления". В свойствах мы укажем:
- названия полей
- для полей с датами — формат отображения "dd.MM.yyyy"
- для полей с выбором (которые у нас представляют года) — перечислим несколько лет.
Окно свойств, например, для поля с выбором будет выглядеть примерно следующим образом:

Собственно, вот и весь первый этап. Теперь для каждого значимого поля у нас отведен свой элемент ввода, а для отдельных полей использованы даже специальные элементы, как "выпадающий список" или "календарь":

Результат не плох, однако, остается еще одна проблема — случайная порча остального текста документа (от серьезной преднамеренной порчи, увы, защититься куда как сложнее). Чтобы защитить документ от случайного изменения мы воспользуемся той же закладкой "Разработчик", выбрав пункт "Защитить документ", а в нем включив элемент "Ограничить форматирование и редактирование":

В результате откроется панель ограничения форматирования и редактирования, в которой мы последовательно:
- Поставим галочку "Разрешить только указанный способ редактирования документа" и в качестве способа редактирования выберем "Ввод данных в поля форм"
- Нажмем кнопку "Да, включить защиту" и в появившемся окне введем пароль защиты от редактирования.

Все. Теперь документ позволяет вводить поля формы, но запрещает напрямую менять остальной текст (при этом введенные данные могут быть любой длины — текст автоматически будет переформатирован под вводимые значения).
Как видите, ничего сложного или требующего специальных навыков нет (так что, закладка "Разработчик", скорее является потенциальным "пугалом", нежели отражает реальное состояние вещей). Однако, мы посмотрели только на одну составляющую электронных форм (или, точнее, на один из плюсов, выделенных нами), и совсем ничего не рассмотрели по части упрощения автоматической обработки текстов. Я обязательно расскажу и об этом, но так как данный материал требует уже определенных навыков программирования его я решил вынести в отдельную статью.
P.S. Те, кому приходилось работать с подобными механизами в Word ранее, наверняка заметят, что ничего принципиального нового я не рассказываю — внедрять в документы элементы управления ActiveX или вставить custom поля можно было и раньше.
Я с этим соглашусь, но замечу, что есть несколько "но", которые, по-моему, очень серьезно меняют расклад, а именно:
- В отличие от старых ActiveX элементов, новые представляют собой части разметки, а потому у них нет проблем с их позиционированием внутри текста, чем очень страдали последние. Были, конечно, еще и встроенные элементы, но те, увы, обладали очень ограниченной функциональностью (т.е. обойтись без ActiveX было практически не реально).
- Второй аспект связан с более общими изменениями в Microsoft Office, а имено переходом на основанный на xml (и опубликованный!) язык разметки и стандартные deflate-файлы в качестве контейнеров. Что это дает? В первую очередь, возможность извлечения и обработки данных форм без использования клиентского API самого Office или встраивания специальных макросов в документ.
В продолжение темы:
- Электронные формы в Microsoft Word 2007: извлечение и вставка данных
- Сокрытие незаполненных полей в формах Word 2007/2010
Как использовать таблицы Excel в Microsoft Word

Т екстовый процессор с некоторыми базовыми возможностями электронных таблиц делает фантастическую комбинацию. Вы можете довольно просто встроить в обычный текстовый документ Microsoft Word таблицы Excel.
Внедрение Excel таблиц в основном включает крошечную копию программы. При редактировании раздела Excel документа у Вас есть доступ ко всем элементам управления Excel, как если бы Вы использовали Excel в качестве отдельной программы. Вы можете добавлять стандартные текстовые и числовые значения, и, что крайне важно, формулы, которые применяются непосредственно к мини-окну Excel.
Чтобы вставить таблицу Excel в Word 2016, нажмите вкладку «Вставить» в верхней части окна, а затем нажмите кнопку «Таблица». Нажмите «Таблица Excel» в раскрывающемся меню.

Вот пример. Я заполнил стандартные ячейки значениями и использовал одну из самых распространенных формул суммы для ячеек в последнем столбце. Итак, для значения «Всего» для «Продукт1» в ячейке E2 я использую формулу «СУММ(B2: D2)», чтобы добавить все три значения в строку и автоматически получить мою итоговую сумму. Вы можете использовать любую формулу Excel, которая Вам нравится в этой встроенной версии программы.

Таблицы Excel имеют в основном бесконечное количество строк и столбцов, но это нецелесообразно, когда Вы используете эти данные в виде таблицы в документе Word. Чтобы изменить количество видимых строк и столбцов, щелкните и перетащите опорные точки, черные квадраты, которые появляются в каждом углу и в середине поля вокруг таблицы Excel.

Когда Вы закончите редактирование этих значений, Вы можете щелкнуть на любую другую часть документа Word, а форматирование по умолчанию вернется к базовой таблице, подходящей для печати или распространения через доступные для чтения форматы, такие как PDF. Здесь Вы можете настроить ширину и высоту таблицы, чтобы лучше соответствовать форматированию документа Word без изменения количества видимых столбцов или строк.

Чтобы снова начать редактирование электронной таблицы, дважды щелкните на нее, чтобы вернуть элементы управления Excel.
Возможно встроить существующий файл Excel, что удобно, если Вы пытаетесь обмениваться данными, которые Вы уже накопили. В таблице «Вставка» нажмите кнопку «Объект» (маленький квадрат с синей рамкой в разделе «Текст»):

В появившемся окне нажмите «Создать из файла», затем нажмите «Обзор», чтобы перейти и открыть электронную таблицу Excel на накопителе Вашего компьютера. У Вас также есть пара других вариантов. Выбор опции «Связь с файлом» сохраняет таблицу, которую Вы видите в Word, связанную с реальной электронной таблицей Excel, если они хранятся в тех же местах, что и при их соединении. Изменения, внесенные Вами в любом месте, отражаются в другом. Вы также можете выбрать параметр «В виде значка», чтобы отобразить электронную таблицу в виде простого значка в документе Word, который Вы можете щелкнуть, чтобы открыть электронную таблицу в Excel.
Когда Вы закончите, просто нажмите «ОК», чтобы вставить таблицу.

В зависимости от форматирования Word Вам может потребоваться изменить размер или изменить его, чтобы все было видно.




