Модул
Съдържание
Индекс 🔎︎

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

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

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

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 - PreferencesИнструменти - Настройки
- 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 - PreferencesИнструменти - Настройки
- 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. Натиснете Вмъкване.