Определение условий

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

Условия могут быть определены для следующих типов полей:

  1. Текст с условием: отображает текст А, если условие истинно, или текст Б, если условие ложно.

  2. Скрытый текст: скрывает содержимое поля, если условие истинно.

  3. Скрытый абзац: скрывает абзац, если условие истинно.

  4. Любая запись и Следующая запись: управляет доступом к записям базы данных.

Самый простой способ определить условие - ввести логическое выражение непосредственно в поле Условие , используя следующие значения:

TRUE

Условие всегда выполняется. В качестве текста условия можно также ввести любое значение, не равное 0.

FALSE

Условие не выполняется. Здесь также можно ввести значение 0.


Значок примечания

Если оставить поле Условие пустым, условие будет считаться невыполненным.


При определении условия используйте те же элементы для определения формулы, а именно: операторы сравнения, математические и статистические функции, форматы чисел, переменные и константы.

При определении условия можно использовать следующие типы переменных:

  1. Предварительно определенные переменные LibreOffice, используемые в статистике в свойствах документа.

  2. Пользовательские переменные, созданные с помощью поля "Задать переменную".

  3. Переменные на основе данных пользователя

  4. Переменные на основе содержимого полей базы данных

В выражениях условий не могут использоваться внутренние переменные, такие как номера страниц и глав.

Условия и переменные

В следующих примерах используется переменная "х".

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 - 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

E-mail

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 Writer - Formatting Aids, and clear the Fields: Hidden paragraphs check box.


Примеры условий в полях

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

Для отображения текста с условием на основе числа страниц поступайте следующим образом:

  1. Выберите пункты менюВставка - Поля - Дополнительно и откройте вкладку Функции.

  2. В списке Тип выберите поле «Текст с условием».

  3. В поле Условие введите "page == 1".

  4. В поле Если выполняется введите "В документе только одна страница".

  5. В поле Иначе введите "В документе несколько страниц".

  6. Нажмите кнопку Вставить, затем нажмите кнопку Закрыть.

Для отображения текста с условием на основе пользовательской переменной:

  1. Выберите вкладку Вставка - Поля - Дополнительно - Переменные.

  2. В списке Тип выберите поле «Задать переменную».

  3. В поле Имя введите «Прибыль».

  4. В поле Значение введите "5000".

  5. Нажмите кнопку Вставить.

  6. Откройте вкладку Функции и выберите поле «Текст с условием» в списке Тип.

  7. В поле Условие введите «Прибыль < 5000».

  8. В поле Если выполняется введите "Цель не достигнута".

  9. В поле Иначе введите «Цель достигнута».

  10. Нажмите кнопку Вставить.

Для изменения содержимого переменной "Прибыль" дважды щёлкните поле переменной.

Для отображения текста с условием на основе содержимого поля базы данных.

В первой части данного примера в документ вставляется пробел между полями «Имя» и «Фамилия», а во второй части вставляется текст, основанный на содержимом поля. В данном примере требуется зарегистрированный в LibreOffice источник адресов.

  1. Выберите пункты менюВставка - Поля - Дополнительно и откройте вкладку База данных.

  2. В списке Тип выберите "Поля слияния".

  3. В поле Выбор базы данных дважды щёлкните адресную книгу, щёлкните «Имя», затем нажмите кнопку Вставить. Повторите то же самое для поля «Фамилия».

  4. В документе установите курсор между двумя полями, нажмите пробел и вернитесь в диалоговое окно Поля.

  5. Откройте вкладку Функции и выберите «Текст с условием» в списке Тип.

  6. В поле Условие введите: "Addressbook.addresses.firstname".

  7. В поле Если выполняется введите пробел, а поле Иначе оставьте пустым.

Теперь можно использовать условие, чтобы вставить текст на основе содержимого поля «Имя».

  1. В диалоговом окне Поля выберите вкладку Функции.

  2. В поле Тип выберите «Текст с условием».

  3. В поле Условие введите: Addressbook.addresses.firstname == "Михаил"

  4. В поле Если выполняется введите «Уважаемый».

  5. В поле Иначе введите «Добрый день».

  6. Нажмите кнопку Вставить.

Please support us!