Определение условий
Условия представляют собой логические выражения, которые можно использовать для управления отображением полей и разделов в документе. Несмотря на то, что последующие примеры касаются полей, они также применимы и к разделам.
Условия могут быть определены для следующих типов полей:
-
Текст с условием: отображает текст А, если условие истинно, или текст Б, если условие ложно.
-
Скрытый текст: скрывает содержимое поля, если условие истинно.
-
Скрытый абзац: скрывает абзац, если условие истинно.
-
Любая запись и Следующая запись: управляет доступом к записям базы данных.
Самый простой способ определить условие - ввести логическое выражение непосредственно в поле Условие , используя следующие значения:
TRUE |
Условие всегда выполняется. В качестве текста условия можно также ввести любое значение, не равное 0. |
FALSE |
Условие не выполняется. Здесь также можно ввести значение 0. |

Если оставить поле Условие пустым, условие будет считаться невыполненным.
При определении условия используйте те же элементы для определения формулы, а именно: операторы сравнения, математические и статистические функции, форматы чисел, переменные и константы.
При определении условия можно использовать следующие типы переменных:
-
Предварительно определенные переменные LibreOffice, используемые в статистике в свойствах документа.
-
Пользовательские переменные, созданные с помощью поля "Задать переменную".
-
Переменные на основе данных пользователя
-
Переменные на основе содержимого полей базы данных
В выражениях условий не могут использоваться внутренние переменные, такие как номера страниц и глав.
Условия и переменные
В следующих примерах используется переменная "х".
x == 1 или x EQ 1 |
Условие истинно, если "х" равно 1. |
x != 1 или x NEQ 1 |
Условие истинно, если "х" не равно 1. |
sinx == 0 |
Условие истинно, если "х" кратно пи. |
Для использования операторов сравнения со строками операнды следует заключить в двойные кавычки:
x == "ABC" или x EQ "ABC" |
Проверяет, содержит ли переменная "х" строку "ABC" (TRUE), или не содержит (FALSE). |
x == "" или x EQ "" или !x или NOT x |
Проверяет, содержит ли переменная "х" пустую строку. |

Оператор сравнения "равно" в условии должен быть представлен двумя знаками равенства (==). Например, если переменной "х" задано значение 1, условие можно ввести в виде x==1.
Сведения о пользователе
You can include user data when you define conditions. To change your user data, choose LibreOffice - PreferencesTools - Options - LibreOffice - User data. User data must be entered in the form of strings. You can query the user data with "==" (EQ), "!=" (NEQ), or "!"(NOT).
В следующей таблице перечислены переменные для пользовательских данных и их значение.
Переменная |
Значение |
user_firstname |
Имя |
user_lastname |
Фамилия |
user_initials |
Инициалы |
user_company |
Организация |
user_street |
Улица |
user_country |
Страна |
user_zipcode |
Почтовый индекс |
user_city |
Город |
user_title |
Звание |
user_position |
Должность |
user_tel_work |
Номер рабочего телефона |
user_tel_home |
Номер домашнего телефона |
user_fax |
Факс |
user_email |
|
user_state |
Область (не во всех версиях LibreOffice) |
Например, чтобы скрыть абзац, текст или раздел от пользователя с конкретными инициалами, например, «ЛМ», введите условие: user_initials==«ЛМ».
Условия и поля базы данных
Можно определить условия для доступа к базам данных или полям баз данных. Например, можно проверить содержимое поля базы данных из условия или использовать поля базы данных в логических выражениях. В таблице приведено еще несколько примеров использования баз данных в условиях.
Пример |
Значение |
Database.Table.Company Database.Table.Company NEQ "" Database.Table.Company != "" |
Условие истинно, если поле COMPANY не пусто. (В первом примере оператор не требуется.) |
!Database.Table.Company NOT Database.Table.Company Database.Table.Company EQ "" Database.Table.Company =="" |
При пустом поле COMPANY возвращает значение TRUE. |
Database.Table.Company !="Sun" Database.Table.Company NEQ "Sun" |
Возвращает значение TRUE, если текущее значение в поле COMPANY отлично от "Sun". (Восклицательный знак обозначает отрицание.) |
Database.Table.Firstname AND Database.Table.Name |
Возвращает значение TRUE, если запись содержит имя и фамилию. |

Обратите внимание на разницу между логическим НЕ ("!") и оператором сравнения "не равно" "!=" (NEQ).
При обращении к полю базы данных в условии используйте форму "Databasename.Tablename.Fieldname". Если одно из имён содержит символ, являющийся оператором, например, знак "минус" (-), заключите имя в квадратные скобки, например, Databasename.[Table-name].Fieldname. Никогда не используйте пробелы в имени поля.
Пример: Скрытие пустого поля базы данных
Можно создать условие, которое скрывает пустое поле, например, если поле COMPANY пусто для некоторых записей данных.
Выберите элемент списка Скрытый абзац и введите следующее условие: Addressbook.Addresses.Company EQ ""
или
NOT Addressbook.Addresses.Company
Если поле базы данных COMPANY пусто, условие истинно и абзац будет скрыт.

To display hidden paragraphs on the screen, you can choose LibreOffice - PreferencesTools - Options - LibreOffice Writer - Formatting Aids, and clear the Fields: Hidden paragraphs check box.
Примеры условий в полях
В следующих примерах используется поле "Текст с условием", однако они могут быть применены к любым полям, которые могут быть связаны с условием. Используемый для условий синтаксис используется также для полей "Скрытый текст", "Скрытый абзац", "Любая запись" или "Следующая запись".
Для отображения текста с условием на основе числа страниц поступайте следующим образом:
-
Выберите пункты менюВставка - Поля - Дополнительно и откройте вкладку Функции.
-
В списке Тип выберите поле «Текст с условием».
-
В поле Условие введите "page == 1".
-
В поле Если выполняется введите "В документе только одна страница".
-
В поле Иначе введите "В документе несколько страниц".
-
Нажмите кнопку Вставить, затем нажмите кнопку Закрыть.
Для отображения текста с условием на основе пользовательской переменной:
-
Выберите вкладку Вставка - Поля - Дополнительно - Переменные.
-
В списке Тип выберите поле «Задать переменную».
-
В поле Имя введите «Прибыль».
-
В поле Значение введите "5000".
-
Нажмите кнопку Вставить.
-
Откройте вкладку Функции и выберите поле «Текст с условием» в списке Тип.
-
В поле Условие введите «Прибыль < 5000».
-
В поле Если выполняется введите "Цель не достигнута".
-
В поле Иначе введите «Цель достигнута».
-
Нажмите кнопку Вставить.
Для изменения содержимого переменной "Прибыль" дважды щёлкните поле переменной.
Для отображения текста с условием на основе содержимого поля базы данных.
В первой части данного примера в документ вставляется пробел между полями «Имя» и «Фамилия», а во второй части вставляется текст, основанный на содержимом поля. В данном примере требуется зарегистрированный в LibreOffice источник адресов.
-
Выберите пункты менюВставка - Поля - Дополнительно и откройте вкладку База данных.
-
В списке Тип выберите "Поля слияния".
-
В поле Выбор базы данных дважды щёлкните адресную книгу, щёлкните «Имя», затем нажмите кнопку Вставить. Повторите то же самое для поля «Фамилия».
-
В документе установите курсор между двумя полями, нажмите пробел и вернитесь в диалоговое окно Поля.
-
Откройте вкладку Функции и выберите «Текст с условием» в списке Тип.
-
В поле Условие введите: "Addressbook.addresses.firstname".
-
В поле Если выполняется введите пробел, а поле Иначе оставьте пустым.
Теперь можно использовать условие, чтобы вставить текст на основе содержимого поля «Имя».
-
В диалоговом окне Поля выберите вкладку Функции.
-
В поле Тип выберите «Текст с условием».
-
В поле Условие введите: Addressbook.addresses.firstname == "Михаил"
-
В поле Если выполняется введите «Уважаемый».
-
В поле Иначе введите «Добрый день».
-
Нажмите кнопку Вставить.