Defining Conditions
Conditions are logical expressions that you can use to control the display of fields and sections in your document. Although the following examples apply to fields, they also apply to sections.
рдЖрдк рдирд┐рдореНрди рдХреНрд╖реЗрддреНрд░ рдХрд╝рд┐рд╕реНрдо рдХреЗ рд▓рд┐рдП рд╢рд░реНрдд рдкрд╛рд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
-
рд╕рд╢рд░реНрдд рдкрд╛рда: рдпрджрд┐ рд╢рд░реНрдд рд╕рд╣реА рд╣реИ рддреЛ рдкрд╛рда A рджрд┐рдЦрд╛рддрд╛ рд╣реИ. рдпрджрд┐ рд╢рд░реНрдд рдЧрд▓рдд рд╣реИ рддреЛ рдкрд╛рда B рджрд┐рдЦрд╛рддрд╛ рд╣реИ.
-
рдЫреБрдкрд╛ рдкрд╛рда: рдпрджрд┐ рд╢рд░реНрдд рд╕рд╣реА рд╣реИ рддреЛ рдХреНрд╖реЗрддреНрд░ рдХреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИ
-
рдЫреБрдкреЗ рдЕрдиреБрдЪреНрдЫреЗрдж: рдпрджрд┐ рд╢рд░реНрдд рд╕рд╣реА рд╣реИ рддреЛ рдЕрдиреБрдЪреНрдЫреЗрдж рдХреЛ рдЫрд┐рдкрд╛рддрд╛ рд╣реИ.
-
рдХреЛрдИ рднреА рд░реЗрдХреЙрд░реНрдб рд╡ рдЕрдЧрд▓рд╛ рд░реЗрдХреЙрд░реНрдб: рдбрд╛рдЯрд╛рдмреЗрд╕ рд░реЗрдХреЙрд░реНрдб рдкрд░ рдкрд╣реБрдБрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ.
The simplest way to define a condition is to type the logical expression directly in a Condition box using the following values:
TRUE |
рд╢рд░реНрдд рд╣рдореЗрд╢рд╛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдХрдВрдбреАрд╢рдирд▓ рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдк рдХреЛрдИ рднреА рдореВрд▓реНрдп рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ 0 рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛ |
FALSE |
рд╢рд░реНрдд рдкреВрд░реА рдирд╣реАрдВ рд╣реБрдИ. рдЖрдк 0 рдорд╛рди рднрд░ рд╕рдХрддреЗ рд╣реИрдВ. |

If you leave the Condition box empty, the condition is interpreted as not being met.
When you define a condition, use the same elements for defining a formula, namely comparative operators, mathematical and statistical functions, number formats, variables and constants.
рдЬрдм рдЖрдк рдХреЛрдИ рд╢рд░реНрдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдирд┐рдореНрди рддрд░рд╣ рдХреЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
-
Predefined LibreOffice variables that use statistics on document properties
-
рдордиреЛрдиреБрдХреВрд▓рд┐рдд рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕, рдЬреЛ "рд╕реЗрдЯ рд╡реЗрд░рд┐рдПрдмрд▓" рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ
-
рдЙрдкрдпреЛрдХреНрддрд╛ рдбрд╛рдЯрд╛ рдЖрдзрд╛рд░рд┐рдд рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕
-
рдбрд╛рдЯрд╛рдмреЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕
You cannot use internal variables, such as page and chapter numbers, in condition expression.
рд╢рд░реНрддреЗрдВ рд╡ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕
рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рд╡реЗрд░рд┐рдПрдмрд▓ "x" рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рд╣реИ:
x == 1 or x EQ 1 |
рд╢рд░реНрдд рд╕рд╣реА рд╣реИ рдпрджрд┐ "x" , 1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ |
x != 1 or x NEQ 1 |
рд╢рд░реНрдд рд╕рд╣реА рд╣реИ рдпрджрд┐ "x" , 1 рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ. |
sinx == 0 |
рд╢рд░реНрдд рд╕рд╣реА рд╣реИ рдпрджрд┐ "x" рдкрд╛рдИ рдХрд╛ рдЧреБрдгрдЬ рд╣реИ |
To use comparative operators with strings, the operands must be bounded by double quotation marks:
x == "ABC" or x EQ "ABC" |
рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╡реЗрд░рд┐рдПрдмрд▓ "x" рдореЗрдВ "ABC" рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ (true), рдпрд╛ рдирд╣реАрдВ (false) рд╣реИ. |
x == "" or x EQ "" or !x or NOT x |
рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡реЗрд░рд┐рдПрдмрд▓ "x" рдореЗрдВ рд░рд┐рдХреНрдд рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╣реИ. |

The "equal" comparative operator must be represented by two equal signs (==) in a condition. For example, if you define a variable "x" with the value of 1, you can enter the condition as 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_fax |
рдлрд╝реИрдХреНрд╕ рдХреНрд░рдорд╛рдВрдХ |
user_email |
рдИрдореЗрд▓ рдкрддрд╛ |
user_state |
рд╕реНрдерд┐рддрд┐ (рд╕рднреА LibreOffice рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ) |
For example, to hide a paragraph, text, or a section from a user with a specific initial, such as "LM", enter the condition: user_initials=="LM".
рд╢рд░реНрдд рддрдерд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХреНрд╖реЗрддреНрд░
You can define conditions for accessing databases, or database fields. For example, you can check the contents of a database field from a condition, or use database fields in logical expressions. The following table lists a few more examples of using databases in conditions:
рдЙрджрд╛рд╣рд░рдг |
рдЕрд░реНрде |
рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдХрдВрдкрдиреА рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдХрдВрдкрдиреА NEQ "" рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдХрдВрдкрдиреА != "" |
рд╢рд░реНрдд рд╕рд╣реА рд╣реИ рдпрджрд┐ COMPANY рдХреНрд╖реЗрддреНрд░ рд░рд┐рдХреНрдд рдирд╣реАрдВ рд╣реИ. (рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХреЛрдИ рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдВрдЫрд┐рдд рдирд╣реАрдВ рд╣реИ.) |
!рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдХрдВрдкрдиреА рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдХрдВрдкрдиреА рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдХрдВрдкрдиреА EQ "" рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдХрдВрдкрдиреА =="" |
Returns TRUE if the COMPANY field is empty. |
рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдХрдВрдкрдиреА =="" рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдХрдВрдкрдиреА NEQ "" |
Returns TRUE if the current entry in the COMPANY field is not "Sun". (Exclamation sign represents a logical NOT.) |
рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдкреНрд░рдердордирд╛рдо AND рдбрд╛рдЯрд╛рдмреЗрд╕.рддрд╛рд▓рд┐рдХрд╛.рдирд╛рдо |
рд╕рд╣реА рдмрддрд╛рддрд╛ рд╣реИ рдпрджрд┐ рд░реЗрдХреЙрд░реНрдб рдореЗрдВ рдкреНрд░рдердо рддрдерд╛ рдЕрдВрддрд┐рдо рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ. |

Note the difference between the boolean NOT "!" and the comparative operator not equal "!=" (NEQ).
When you refer to a database field in a condition, use the form Databasename.Tablename.Fieldname. If one of the names contains a character that is an operator, such as a minus sign (-), enclose the name in square brackets, for example, Databasename.[Table-name].Fieldname. Never use spaces inside field names.
рдЙрджрд╛рд╣рд░рдг: рд░рд┐рдХреНрдд рдбрд╛рдЯрд╛рдмреЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЫреБрдкрд╛рдирд╛
You may want to create a condition that hides an empty field, for example, if the COMPANY field is empty for some of the data records.
Select the Hidden Paragraph list entry, and type the following condition: Addressbook.Addresses.Company EQ ""
or type the following
NOT Addressbook.Addresses.Company
If the COMPANY database field is empty, the condition is true and the paragraph is hidden.

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.
рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╢рд░реНрддреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг
The following examples use the Conditional text field, although they can be applied to any fields that can be linked to a condition. The syntax used for conditions is also used for the Hidden text, Hidden paragraph, Any record or Next record fields.
рдкреГрд╖реНрдареЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд╢рд░реНрдд рдкрд╛рда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
-
Choose Insert - Field - More Fields, and then click the Functions tab.
-
In the Type list, click "Conditional text".
-
In the Condition box, type "page == 1".
-
In the Then box, type "There is only one page".
-
In the Or box, type "There are several pages".
-
Click Insert, and then click Close.
рдЙрдкрдпреЛрдХреНрддрд╛-рдкрд╛рд░рд┐рднрд╛рд╖рд┐рдд рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╢рд░реНрддрдпреБрдХреНрдд рдкрд╛рда рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
-
Choose Insert - Field - More Fields, and then click the Variables tab.
-
In the Type list, click "Set Variable".
-
In the Name box, type "Profit".
-
In the Value box, type "5000".
-
Click Insert.
-
Click the Functions tab, and click "Conditional text" in the Type list.
-
In the Condition box, type "Profit < 5000".
-
In the Then box, type "Target is not met".
-
In the Or box, type "Target is met".
-
Click Insert.
"рд▓рд╛рдн" рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗрд░рд┐рдПрдмрд▓ рдХреНрд╖реЗрддреНрд░ рдХреЛ рджреЛрд╣рд░рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ.
рдбрд╛рдЯрд╛рдмреЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд╢рд░реНрдд рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
The first part of this example inserts a space between the "First Name" and "Last Name" fields in a document, and the second part inserts text based on the contents of a field. This example requires that an address data source is registered with LibreOffice.
-
Choose Insert - Field - More Fields, and then click the Database tab.
-
In the Type list, click "Mail merge fields".
-
In the Database selection box, double-click an address book, click "First Name", and then click Insert. Repeat for "Last Name".
-
In the document, place the cursor between the two fields, press Space, and then return to the Fields dialog:
-
Click the Functions tab, and then click "Conditional text" in the Type list.
-
In the Condition box, type: "Addressbook.addresses.firstname".
-
In the Then box, type a space and leave the Or box blank.
You can now use a condition to insert text based on the contents of the First Name field.
-
In the Fields dialog, click the Functions tab.
-
In the Type box, click "Conditional text".
-
In the Condition box, type: Addressbook.addresses.firstname == "Michael"
-
In the Then box, type "Dear".
-
In the Else box, type "Hello".
-
Click Insert.