定义条件
条件是逻辑表达式,可以用来控制文档中字段和区域 的显示。以下内容以字段为例,但同样适用于区域。
可以为以下字段类型定义条件:
-
有条件的文字:如果条件为 True,则显示文字 A,否则显示文字 B。
-
隐藏文字:如果条件为 True,则隐藏字段的内容。
-
隐藏段落:如果条件为 True,则隐藏段落。
-
“任何一个记录”和“下一个记录”:控制对数据库记录的访问。
定义条件最简单的方法,是使用以下值直接在条件框中键入逻辑表达式:
TRUE |
条件总是被满足。或者您也可以输入任意一个不等于 0 的值作为条件文字。 |
FALSE |
条件不被满足。或者您也可以输入 0 值。 |

空的条件框被解释为不满足条件。
定义条件与定义公式都使用相同的元素 ,即比较运算符、数学和统计函数、数字格式、变量和常数。
定义条件时,可以使用以下变量类型:
-
预设的LibreOffice 变量这些变量使用文档的属性统计信息
-
自定义的变量,使用“设置变量”字段创建
-
基于用户数据的变量
-
基于数据库字段内容的变量
在条件表达式中,无法使用内部变量,如页码和章节编号。
条件和变量
以下示例使用了变量 "x" :
x == 1 或 x EQ 1 |
如果 "x" 等于 1,则条件为 True。 |
x != 1 或 x NEQ 1 |
如果 "x" 不等于 1 则条件为 True。 |
sinx == 0 |
如果 "x" 是 pi 的倍数则条件为 True。 |
要对字符串使用比较运算符,请务必在运算符前后加双引号:
x == "ABC" 或 x EQ "ABC" |
检查变量 "x" 是 (true) 否 (false) 包含字符串 "ABC"。 |
x == "" 或 x EQ "" 或 !x 或 NOT x |
检查变量 "x" 是否含有空字符串。 |

在条件中,"等于"比较运算符必须用两个等号 (==) 表示。例如,如果定义变量 "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 版本都有) |
例如,要隐藏来自具有特定缩写的某个用户(如 "LM")的段落、文字或区域,请输入条件:user_initials=="LM"。
条件和数据库字段
可以定义用于访问数据库或数据库字段的条件。例如,可以使用条件来检查数据库字段的内容,或者在逻辑表达式中使用数据库字段。下表列出在条件中使用数据库的更多示例:
示例 |
含义 |
数据库.表格.公司 Database.Table.Company NEQ "" Database.Table.Company != "" |
如果 COMPANY 字段不为空,则条件为 True。(在第一个示例中,不需要运算符。) |
!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" |
如果 COMPANY 字段中的当前条目不是 "Sun",则返回 TRUE。(感叹号表示逻辑 NOT。) |
Database.Table.Firstname AND Database.Table.Name |
如果数据条目同时含有姓和名,则返回 TRUE。 |

请注意布尔型 NOT "!" 和比较运算符不等号 "!=" (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"。
-
在则框中,键入 "There is only one page"。
-
在或框中,键入 "There are several pages"。
-
单击插入,然后单击关闭。
要显示基于自定义变量的有条件的文字
-
选择插入 - 字段 - 更多字段,然后单击变量选项卡。
-
在类型列表中,单击“设置变量”。
-
在名称框中,键入 "Profit"。
-
在值框中,键入 "5000"。
-
单击插入。
-
单击功能选项卡,并在字段类型列表中单击“有条件的文字”。
-
在条件框中,键入 "Profit < 5000"。
-
在则框中,键入 "Target is not met"。
-
在或者框中,键入 "Target is met"。
-
单击插入。
要编辑 "Profit" 变量的内容,请双击该变量字段。
显示基于数据库字段内容的有条件的文字:
此示例的第一部分在文档的“名字”和“姓氏”字段之间插入一个空格,第二部分则根据字段内容插入文本。此示例要求在 LibreOffice 中注册地址数据源。
-
选择插入 - 字段 - 更多字段,然后单击数据库选项卡。
-
在类型列表中,单击“邮件合并字段”。
-
在选择数据库框中,双击某个地址簿,单击 "First Name",然后单击插入。重复此步骤,插入 "Last Name"。
-
在文档中,将光标置于两个字段之间,按空格键,然后返回 字段对话框:
-
单击功能选项卡,然后在类型列表中单击“有条件的文字”。
-
在条件框中,键入:"Addressbook.addresses.firstname"。
-
在则框中键入一个空格,并将或框保留空。
现在,您可以使用条件根据 First Name 字段的内容来插入文字。
-
在字段对话框中,单击功能选项卡。
-
在类型框中,单击“有条件的文字”。
-
在条件框中,键入:Addressbook.addresses.firstname == "Michael"
-
在则框中,键入 "Dear"。
-
在或框中,键入 "Hello"。
-
单击插入。