Дефиниране на условия

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

Можете да определите условия за следните типове полета:

  1. Условен текст: показва текст А, ако условието е истина, или текст Б, ако условието е лъжа.

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

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

  4. Произволен запис и следващ запис: конторолира достъпа до записи от БД.

Най-простият начин за определяне на условие е да въведете логическия израз директно в полето Условие , използвайки следните стойности:

TRUE

Условието винаги е изпълнено. Можете също да въведете каква да е стойност различна от 0 в условието.

FALSE

Условието винаги е неизпълнено. Можете също така да въведете стойност 0 за условието.


Икона Бележка

Ако оставите полето Условие празно, условието се счита за неизпълнено.


Когато дефинирате условие, използвайте същите елементи, както за дефиниране на формула, а именно операции за сравнение, математически и статистически функции, числови формати, променливи и константи.

Можете да използвате следните типове променливи, когато дефинирате условие:

  1. Вградени променливи на LibreOffice, базирани на свойствата на документа

  2. Потребителски променливи, създадени с полето „Задаване на променлива“

  3. Променливи, основани на потребителски данни

  4. Променливи, основани на съдържанието на полета от БД

Не може да се използват вътрешни променливи, като страница и номер за глава, в израз на условие.

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

В следващите примери се използва променлива с име „x“:

x == 1 или x EQ 1

Условието е истина, ако „x“ е равно на 1.

x != 1 или x NEQ 1

Условието е истина, ако „x“ е различно от 1.

sinx == 0

Условието е истина, ако „x“ е кратно на пи.


За да използвате операции за сравнение с низове, операндите трябва са заградени с двойни кавички:

x == "ABC" или x EQ "ABC"

Проверява дали променливата „x“ съдържа низа "ABC" (истина), или не (лъжа).

x == "" или x EQ ""

или

!x или NOT x

Проверява дали променливата „x“ съдържа празен низ.


Икона Бележка

Операцията за сравняване „равно на“ трябва да се изписва с два знака за равенство (==), когато е в условие. Например, ако дефинирате променлива „x“ със стойност 1, можете да напишете условие x==1.


Данни за потребител

Когато определяте условие, можете да включите данни за потребителя. За да смените потребителските си данни, изберете - LibreOffice - Данни за потребител. Данните за потребител трябва да бъдат въведени във вид на низове. Може да извършвате сравнения с тях чрез „==“ (EQ), „!=“ (NEQ) или „!“ (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 ==""

Връща TRUE, ако полето COMPANY е празно.

Database.Table.Company !="Sun"

Database.Table.Company NEQ "Sun"

Връща TRUE, ако текущата стойност в полето COMPANY не е "Sun". (Удивителният знак представя логическо не (NOT).)

Database.Table.Firstname AND Database.Table.Name

Връща TRUE, ако записът съдържа собственото име и фамилията.


Икона Бележка

Забележете разликата между логическо не (NOT) „!“ и сравняващата операция различно „!=“ (NEQ).


Когато цитирате поле от БД в условие, използвайте формата ИмеНаБД.ИмеНаТаблица.ИмеНаПоле. Ако някое от имената съдържа знак, който е оператор, като знака минус (-), оградете името в квадратни скоби, например: ИмеНаБД.[име-на-таблица].ИмеНаПоле. Никога не използвайте интервали в имената на полетата.

Пример: скриване на празно поле от БД

Може да поискате да създадете условие, което скрива празно поле, например ако полето COMPANY (фирма) е празно за някои от записите с данни.

Изберете полето Скрит абзац и въведете следното условие: Addressbook.Addresses.Company EQ ""

или наберете следното:

NOT Addressbook.Addresses.Company

Ако полето COMPANY от БД е празно, условието ще е изпълнено и абзацът ще бъде скрит.

Икона Бележка

За да покажете скритите абзаци на екрана, можете да изберете - LibreOffice Writer - Помощ при форматиране и да премахнете отметката от Полета: Скрити абзаци.


Примери за условия в полета

В следващите примери е използвано поле за условен текст, но те могат да бъдат приложени върху произволни полета, позволяващи свързване с условие. Синтаксисът, използван за условия, се ползва също и за полета „скрит текст“, „скрит абзац“, „произволен запис“ или „следващ запис“.

За да покажете условен текст, зависещ от броя на страниците:

  1. Изберете Вмъкване - Поле - Още полета и щракнете върху раздела Функции.

  2. В списъка Tип изберете „Условен текст“.

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

  4. В полето Тогава въведете „Има само една страница“.

  5. В полето Или въведете „Има няколко страници“.

  6. Натиснете Вмъкване, след това натиснете Затваряне.

За да покажете условен текст, зависещ от потребителска променлива:

  1. Изберете Вмъкване - Поле - Още полета и щракнете върху раздела Променливи.

  2. От списъка Тип изберете „Задаване на променлива“.

  3. В полето Име въведете „Печалба“.

  4. В полето Стойност въведете „5000“.

  5. Натиснете Вмъкване.

  6. Изберете раздела Функции и щракнете върху „Условен текст“ в списъка Тип.

  7. В полето Условие въведете „Печалба < 5000“.

  8. В полето Тогава въведете „Целта не е достигната“.

  9. В полето Или въведете „Целта е постигната“.

  10. Натиснете Вмъкване.

За да редактирате стойността на променливата „Печалба“, щракнете двукратно върху полето на променливата.

За да покажете условен текст, зависещ от стойността на поле от БД:

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

  1. Изберете Вмъкване - Поле - Още полета и щракнете върху раздела База от данни.

  2. В списъка Тип изберете „Полета за циркулярно писмо“.

  3. В Избор на БД щракнете двукратно върху адресния бележник, изберете „First Name“ (собствено име) и натиснете Вмъкване. Повторете за „Last Name“ (фамилия).

  4. В документа поставете курсора между двете полета, натиснете клавиша „интервал“ и се върнете в диалоговия прозорец Полета:

  5. Щракнете върху раздела Функции и изберете „Условен текст“ от списъка Тип.

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

  7. В полето Тогава въведете интервал и оставете полето Или празно.

Сега можете да използвате условие, за да вмъкнете текст, базиран на съдържанието на полето First Name (собствено име).

  1. В диалоговия прозорец Полета щракнете върху реаздела Функции.

  2. От списъка Тип изберете „Условен текст“.

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

  4. В полето Тогава въведете "Скъпи".

  5. В полето Или въведете "Здравей".

  6. Натиснете Вмъкване.

Моля, подкрепете ни!