Использование пользовательского выбора списка в качестве условия в LibreOffice Writer

#libreoffice-writer

#libreoffice-writer

Вопрос:

Я пытаюсь создать заполняемый формой PDF-файл, в котором поля со списком будут влиять на другие части листа.

В моем документе есть несколько скрытых абзацев (скрытие графики и т. Д.) И окно списка. Я хотел бы использовать выбор списка в качестве условия для динамического скрытия и отображения различных скрытых абзацев.

Пример: пользователь выбирает щелчки в списке, и в списке отображаются Cat, Dog и Bird. Если пользователь выбирает «Собаку» из списка, абзац с текстом и изображениями собак больше не скрывается.

Я понимаю, что мне нужно скрыть абзац, если [Выбор списка] != «Dog» в качестве моего условия, я просто не могу понять, где получить выбор списка. Похоже, я наткнулся на стену в поисках ответа или руководства, потому что мне не хватает конкретной терминологии (поле? формула?).

Ответ №1:

Я на самом деле пытаюсь сделать то же самое, и это меня очень расстраивает. Я разработал базу данных для управления делами для своей юридической конторы (на самом деле, на данный момент она в значительной степени управляет почти всеми аспектами офиса), Но поскольку мы обрабатываем самые разные дела (защита по уголовным делам, гражданский процесс, завещание и т. Д.), Информация, которую нам нужно отслеживать, часто меняется. Например, по уголовным делам нам нужно отслеживать оценку рекомендаций по вынесению приговоров, текущее предложение прокурора, предыдущие судимости и так далее. Для случаев семейного права нам нужно отслеживать такие вещи, как активы, графики родительского времени и т. Д. Одновременное размещение всех этих переменных на одной странице очень быстро становится очень громоздким, поэтому я пытаюсь настроить форму так, чтобы при выборе случая «защита по уголовным делам» он показывал часть страницы «Защита по уголовным делам» и скрывал «Семейное право»,»Гражданский судебный процесс», «Завещание» и другие разделы.

Единственным способом, которым я мог это сделать, было создать переменную (в данном случае я назвал ее «CaseType») и установить для абзацев скрытие или видимость в зависимости от значения переменной. Это отлично работает, за исключением (а) неудобно заставлять пользователей выбирать тип обращения для целей базы данных, а затем заставлять их выбирать тип сведений о обращении для отображения в форме; и (что более важно) (б) пользователь должен ввести требуемое значение переменной вдиалог напрямую, что является проблемой. Я бы предпочел, чтобы тип отображаемых разделов определялся значением типа обращения в базе данных, или в самом списке панели отображались в выпадающем списке.

Мне пришла в голову идея записать макрос, который будет выполняться при нажатии кнопок — например, нажмите кнопку «Панель уголовного дела», и запустится скрипт, который выберет переменную двойным щелчком мыши, введет правильное значение в диалоговом окне, а затем применит новую переменную, нопохоже, что Writer не позволит вам записывать макросы, которые изменяют значения в диалоговых окнах.

В этом аспекте программного обеспечения так много неиспользованного потенциала; если бы пользовательские переменные можно было задавать с помощью форм — или если бы «скрытые» флаги могли быть активированы для скрытия значениями переменных базы данных — это открыло бы так много возможностей. Мне жаль, что у меня нет навыков программирования для работы с этой частью программного обеспечения.

Ответ №2:

Согласно https://help.libreoffice.org/7.0/en-US/text/swriter/01/04090200.html , вы можете настроить базу данных для условий записи. Похоже, что это будет работать с базой LibreOffice, где можно создавать формы со списками.

Однако, если вы пытаетесь использовать значения из списка в отдельном шаблоне записи или другом документе, то, взглянув на эту ссылку, это кажется невозможным. Условия записи ограничены метаданными документа, а не содержимым документа.

Одним из решений является написание макроса, который выводит диалоговое окно со списком, а затем, когда диалоговое окно закрыто, изменяет документ записи на основе выбранных значений. В LibreOffice есть интерфейс разработки диалогового окна, который поможет вам настроить это, а затем вам нужно будет написать код для выполнения диалога и внесения изменений. См. https://www.pitonyak.org/oo.php за помощью в написании необходимого кода.

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

1. Ааааа. Похоже, то, что я пытался сделать, тогда невозможно, тем более, что я хочу опубликовать в формате PDF, а PDF-файлы почти наверняка не примут макрос для всплывающего диалогового окна. Несмотря на то, что я не могу сделать то, на что надеялся, я ценю устранение возможности, чтобы я мог перейти к другим решениям. Спасибо!