定义条件

条件是逻辑表达式,可以用来控制文档中字段区域 的显示。以下内容以字段为例,但同样适用于区域。

可以为以下字段类型定义条件:

  1. 有条件的文字: 如果条件为 True,则显示文字 A,否则显示文字 B。

  2. 隐藏文字: 如果条件为 True,则隐藏字段的内容。

  3. 隐藏段落: 如果条件为 True,则隐藏段落。

  4. 「任何一个记录」和「下一个记录」: 控制对数据库记录的访问。

定义条件最简单的方法,是使用以下值直接在「条件」框中输入逻辑表达式:

TRUE

条件总是被满足。或者您也可以输入任意一个不等于 0 的值作为条件文字。

FALSE

条件不被满足。或者您也可以输入 0 值。


note

空的「条件」框被解释为不满足条件。


定义条件与定义公式都使用相同的元素 ,即比较运算符、数学和统计函数、数字格式、变量和常数。

定义条件时,可以使用以下变量类型:

  1. 预设的LibreOffice 变量这些变量使用文档的属性统计信息

  2. 自定义的变量,使用「设置变量」字段创建

  3. 基于用户数据的变量

  4. 基于数据库字段内容的变量

在条件表达式中,无法使用内部变量,如页码和章节编号。

条件和变量

以下示例使用了变量 "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" 是否含有空字符串。


note

在条件中,"等于"比较运算符必须用两个等号 (==) 表示。例如,如果定义变量 "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

Email address

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。


note

请注意布尔型 NOT "!" 和比较运算符不等号 "!=" (NEQ) 之间的区别。


引用条件中的数据库字段时,请使用 Databasename.Tablename.Fieldname 的格式。如果其中一个名称包含的字符是运算符,例如减号 (-),请将名称用方括号括起,例如 Databasename.[Table-name].Fieldname。切勿在字段名称内使用空格。

示例: 隐藏空数据库字段

如果需要,可以创建隐藏空字段的条件。例如,如果对于某些记录,COMPANY 字段为空字段。

选择「隐藏段落」列表条目,并输入以下条件: Addressbook.Addresses.Company EQ ""

或输入以下内容

NOT Addressbook.Addresses.Company

如果 COMPANY 数据库字段为空,则此条件为真,且段落被隐藏。

note

To display hidden paragraphs on the screen, choose - LibreOffice Writer - View, and clear the Hidden paragraphs check box.


字段中的条件示例

以下示例使用「有条件的文字」字段。这些示例同样适用于其他可与条件链接的字段。条件所使用的语法对于隐藏的文字、隐藏的段落、任何一个记录或下一个记录等字段也适用。

显示基于页数的有条件的文字:

  1. 选择「插入 - 字段 - 更多字段」,然后点击「函数」选项卡。

  2. 在「类型」列表中,点击「有条件的文字」。

  3. 在「条件」框中,输入 "page == 1"。

  4. 在「」框中,输入 "There is only one page"。

  5. 在「」框中,输入 "There are several pages"。

  6. 点击「插入」,然后点击「关闭」。

要显示基于自定义变量的有条件的文字

  1. 选择「插入 - 字段 - 更多字段」,然后点击「变量」选项卡。

  2. 在「类型」列表中,点击「设置变量」。

  3. 在「名称」框中,输入 "Profit"。

  4. 在「」框中,输入 "5000"。

  5. 点击「插入」。

  6. 点击「功能」选项卡,并在「字段类型」列表中点击「有条件的文字」。

  7. 在「条件」框中,输入 "Profit < 5000"。

  8. 在「」框中,输入 "Target is not met"。

  9. 在「或者」框中,输入 "Target is met"。

  10. 点击「插入」。

要编辑 "Profit" 变量的内容,请双击该变量字段。

显示基于数据库字段内容的有条件的文字:

此示例的第一部分在文档的「名字」和「姓氏」字段之间插入一个空格,第二部分则根据字段内容插入文本。此示例要求在 LibreOffice 中注册地址数据源。

  1. 选择「插入 - 字段 - 更多字段」,然后点击「数据库」选项卡。

  2. 在「类型」列表中,点击「邮件合并字段」。

  3. 在「选择数据库」框中,双击某个地址簿,点击 "First Name",然后点击「插入」。重复此步骤,插入 "Last Name"。

  4. 在文档中,将光标置于两个字段之间,按空格键,然后返回「字段」对话框:

  5. 点击「功能」选项卡,然后在「类型」列表中点击「有条件的文字」。

  6. 在「条件」框中,输入: "Addressbook.addresses.firstname"。

  7. 在「」框中输入一个空格,并将「」框保留空。

现在,您可以使用条件根据 First Name 字段的内容来插入文字。

  1. 在「字段对话框中,点击功能」选项卡。

  2. 在「类型」框中,点击「有条件的文字」。

  3. 在「条件」框中,输入: Addressbook.addresses.firstname == "Michael"

  4. 在「」框中,输入 "Dear"。

  5. 在「」框中,输入 "Hello"。

  6. 点击「插入」。

请支持我们!