Формы в Word (вопросы и ответы). Часть 2. Использование Rich Text Content Control и замена Check Box

faq_smallПочти 2 года прошло с публикации первой статьи “вопросов и ответов” (Формы в Word (вопросы и ответы). Часть 1. Форматирование и защита ячеек таблиц). Вопросы продолжают появляться, но совсем не хватает времени их описать.

Сегодня, наконец, часть вопросов я постараюсь раскрыть…

Вопрос 1. Как использовать Rich Text Control в защищенных формах?

Вопрос возник из комментария Леонида Николаева:


У меня возникла небольшая проблема, решения которой пока не нашел. Мне нужно подготовить в Word 2007 такую форму, чтобы те, кто ее будет заполнять, могли в нее вносить достаточно объемный текст, причем с возможностью форматирования, напр. выделение жирным, курсивом, маркированный список и т.д. Использую для этого элемент формы “Формат RTF”. Но проблема в том, что как только я включаю защиту формы, форматирование внутри этого элемента становится недоступным – можно только вводить текст так же как в обычный текстовый элемент. Элемент работает как надо только если форма не защищена.

Действительно, если создать форму с Rich Text элементом, то после выбора защиты “Filing in forms” можно будет вводить только обычный текст, т.е. элемент начнет работать как Plain Text элемент.

Небольшое расследование показало следующее (ответ подсказал Jay Freedman, который отвечал на аналогичный вопрос Rich Text and a Protected Form):

  • Метод защиты “Filling in forms” предназначался для устаревших элементов управления (те, которые появляются в списке Legacy Tools) и на поведение современных Content Controls могут влиять самым непредсказуемым образом. Например, как в случае с Rich control
  • Для защиты текста “вокруг” Content Controls существует свой специализированный способ – группировка.

Итак, как правильно защитить документ с Content Controls

Возьмем уже знакомый документ и добавим поле “Примечание” (мы обойдемся без привязки к XML – нам сейчас это не важно)

image

Выделим все содержимое документ (Ctrl+A) и выберем на вкладке Developer пункт группировки (Group/Group):

image

Всё, теперь весь текст (а также картинки, форматирование, …) будут “заморожены”, а все Content Controls сохранят свою функциональность.

Однако, снять такую защиту очень легко – достаточно встать на любое место в документе (или выделить все содержимое) и нажать Group/Ungroup. Печальная рожица Можно ли что-то сделать? Как оказалось – да.

Как мы уже выяснили, защита c ограничением “Filling in forms” нам не подходит (она продолжает блокировать Rich Text и в случае группировки – можете убедиться сами), зато нам может подойти (как бы странно это не звучало Улыбка) защита “No changes (Read only)”, нужно только правильно ею воспользоваться.

Но! Этот способ нигде не описан и вообще выглядит чистой воды шаманством – применяйте его строго на свой страх и риск. И проверял я его лишь в Office 2013

По шагам:

Самое главное: Делаем все НЕ снимая выделения с содержимого документа после того как сделали группировку!!! – Это очень важно, стоит только снять выделение, и всё перестает работать. Т.е. если вы даже снова нажмете Ctrl+A и поставите защиту как описано ниже, у пользователя останется возможность снять группировку. Поэтому если вы убрали выделение после группировки, просто разгруппируйте и сгруппируйте содержимое документа заново.

  • Нажимаем на вкладке Developer кнопку “Restrict Editing”, чтобы открыть панель защиты.
  • На панели выбираем пункт “Allow only this type of editing in the document”, а в выпадающем списке “No changes (Read only)”

image

  • Ставим галочку напротив группы Everyone и нажимаем кнопку “Yes, Start Enforcing Protection”

image

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

image

  • Убеждаемся, что весь наш документ заключен в начале и в конце в квадратные скобки [ и ], а также выделен цветом (это выделяется та часть, которою текущий пользователь может редактировать):

image

  • Чтобы избавиться от подсветки, снимаем галочку “Highlight the regions I can edit” на панели защиты:

image

  • Сохраняем шаблон

Надеюсь, это вам поможет

Вопрос 2. Чем в Word 2007+ заменить Check Box (“Флажок”, “Галочка”) и Option Button (Radio Button, “Выбор”)?

Вопрос задавали Леонид Николаев и Alexandr Varzanov (чуть выше).

Я процитирую (с небольшими изменениями) свой ответ, который я дал Александру. Он будет немного философским и, наверное, не очень устраивающим – но как уж есть.

Для начала я бы убедился, что Word – в принципе подходящий инструмент для той задачи, которую вы решаете. Например, если делается что-то на манер опросника/анкеты для голосования, то я бы сказал, что это не совсем функция Word.

Вообще, мое мнение – формы в Word, это не полноценные электронные формы. Это всего лишь способ создавать документы с динамическими элементами. Вот, например, как в этих 2 статьях Таблицы в формах Word 2013 и Программная генерация документов-форм в Word.

Т.е. типичная задача: у нас есть шаблонный документ, который по большей части не изменяется совсем, но ряд элементов в документе все же меняются (или задаются на этапе создания). При этом мы хотим ограничить степень этой вариативности – например, давать выбирать значения только из списка…

Вот и получается, что под такие задачи подпадают:

  • шаблоны договоров
  • заявления
  • … (хотел написать пресс-релизы, но подумал, что не оценят🙂 ).

Именно под такие задачи MS ввела в Word такие элементы как Content Controls (и они же заменили прежние ActiveX). Попутно мы получили: возможность легко и просто извлекать эти самые введенные элементы из документа (без всякого анализа текста и прочих ухищрений) и наоборот – задавать эти данные извне и на основе них генерировать готовые документы.

Если всё же попытаться ответить на вопрос “чем заменить”, то я вижу такие варианты (это с ходу – нужно внимательно изучить каждый):

  1. Перейти на использование Content Controls
  2. Использовать специальные решения для электронных форм.

C Content Controls проблема в том (как я писал выше), что они не предназначены для задач кроме конструирования текста. Поэтому, например, там не будет Radio Button. В качестве замены можно использовать выпадающий список, но в него большой текст не поместишь. Поэтому, как вариант делать так:

  • Текст вопроса
  • Тексты ответов промаркированные буквами/цифрами
  • Элемент выбора варианта ответа

Как на картинке:

image

Как видите, несколько неказистое решение…

Если же говорить о специальных инструментах, то тут надо знать специфику:

  • Что за документы/формы вы готовите
  • Как будете распространять
  • Как планируете обрабатывать результаты

Может статься, что вам проще занести вопросы в какой-нибудь Online-сервис (наподобие того, что есть у Google) и разослать всем ссылку на форму.

This entry was posted in MS Office and tagged , , . Bookmark the permalink.

4 Responses to Формы в Word (вопросы и ответы). Часть 2. Использование Rich Text Content Control и замена Check Box

  1. Благодарю за исчерпывающий ответ на первый вопрос! Правда, в Office 2007 выделение автоматически снимается после того, как делаю группировку, но зато потом можно вручную выделить и поставить защиту как описано далее по алгоритму.
    Что же касается второго вопроса – чем заменить CheckBox, – то, как я понял, ответ: ничем. А жаль – все же я не соглашусь с тем, что такая возможность в Word не нужна. Если нужна возможность типа раскрывающегося (или выпадающего) списка для выбора 1 из N вариантов, то так же на практике нужна и возможность выбирать M из N вариантов. На эту роль вполне подошел бы тот же раскрывающийся список, если бы в нем была опция “разрешить множественный выбор”. Кстати, в элемент формы “Раскрывающийся список” помещается весьма длинный текст, такой что после выбора может занимать несколько строк (но не несколько абзацев) – по крайней мере для моей задачи этого вполне достаточно.
    Вкратце моя задача: подготовить форму для заполнения информации о неких (не хочу вдаваться в специфику) опытах, в которой, помимо прочих, есть поле “Название опыта” типа Текст, поле “Аннотация” типа Rich Text, поле “Направление” типа Раскрывающийся список и поле “Целевые группы”, в котором как раз нужна недостающая возможность множественного выбора. Пока же вижу только такой вариант: заменить флажки на раскрывающиеся списки с двумя значениями “+” и “-“. Флажки, конечно, удобнее, но они, увы, не группируются с Content Controls.

    • >> Правда, в Office 2007 выделение автоматически снимается после того, как делаю группировку, но зато потом можно вручную выделить и поставить защиту как описано далее по алгоритму.

      Отлично! Но обязательно убедитесь, что после “запаролевания” снять группировку не получается. У меня была именно эта проблема – делаю группировку, снимаю выделение, выделяю по новой, защищаю от изменений и обнаруживаю, что в защищенном документе можно отменить группировку.

      >> Вкратце моя задача

      Да, я примерно так и представлял (не с точки зрения прикладной области, а с точки зрения потребностей в E-forms).
      Я все же продолжаю считать, что именно Word для подобных задач – не совсем подходящий инструмент. У Microsoft для “полноценных” e-froms есть специализированный продукт – InfoPath. У него есть свои тараканы, это правда🙂 Но в целом – как более специализированный продукт он куда больше предназначен для подобных задач.
      Правда, это продукт уже для другой целевой группы (и потому доступен только в Pro версиях офиса).

      >> Пока же вижу только такой вариант: заменить флажки на раскрывающиеся списки с двумя значениями «+» и «-«

      Если бы вы работали в 2013 версии, то можно было бы использовать Repeating Section. Но в 2007 такой элемент не доступен.

      • Насчет группировки в 2007 проверил – все в порядке.
        По поводу же версии 2013 проблема в том, что мне заранее неизвестно, в какой версии Office будут заполнять эту форму, но могу сказать наверняка, что версия 2013 будет далеко не у всех, так что безопаснее ориентироваться на 2007.
        Правда, если продолжить эту логику, то ведь и 2007 вполне может у кого-то не оказаться – кто до может работать с 2003, кто-то на Mac (в Word 2011 для Mac элементов Content Controls нет), кто-то с Open или Libre Office… У всех перечисленных общий знаменатель – это так называемые “Инструменты из предыдущих версий”, среди которых нет Rich Text… В этом плане совершенно согласен, что Word не совсем подходящий инструмент для этой задачи.
        А не по теме: Михаил, что с вашим сайтом, он то и дело недоступен? Зашел сейчас через анонимайзер.

        • > А не по теме: Михаил, что с вашим сайтом, он то и дело недоступен? Зашел сейчас через анонимайзер

          О у вас та же беда? Никак не могу определить в чем причина. Есть подозрение, что это снова блокировка на уровне какого-то из провайдеров (типа Ростелекома) причем блокируется один из узлов WordPress, поэтому то работает, то нет…

          Но вот почему-то выдачи сообщения о блокировке не происходит.

          Ну и могут быть проблемы на стороне самого WordPress. Как это диагностировать я не очень представляю.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s