定義條件

條件為邏輯表示式,您可以用來控制文件中的欄位區段 。雖然以下範例適用於欄位,但它們也適用於區塊。

您可以為以下欄位類型定義條件:

  1. 條件文字:如果條件為真則顯示文字 A;或如果條件為假,則顯示文字 B。

  2. 隱入文字:如果條件為真則隱入欄位的內容。

  3. 隱入段落:如果條件為真則隱入段落。

  4. 任何資料條目和下一個資料條目:控制存取資料庫資料條目。

定義條件最簡單的方法是使用下列值,直接在[條件]方塊中鍵入邏輯表達式:

TRUE

總是滿足條件。或者,您也可以輸入任意一個不等於 0 的數值作為條件文字。

FALSE

條件未滿足。您也可以指定數值為 0。


note

如果您保留[條件]方塊為空白,則解譯為未符合條件。


當您定義某個條件時,請使用相同的元素 以定義公式,即比較運算子、數學與統計函式、數字格式、變數與常數。

定義條件時,您可以使用下列變量類型:

  1. 文件特性使用統計資料的預先定義的 LibreOffice 變數

  2. 自訂變量,由「設定變量」欄位建立

  3. 基於使用者資料的變量

  4. 基於資料庫欄位內容的變量

在條件表達式中,您無法使用內部變量 (如頁碼和章節號)。

條件和變量

下列範例使用了稱為「x」的變量:

x == 1 或 x EQ 1

如果「x」等於 1,則該條件為真。

x != 1 或 x NEQ 1

如果「x」不等於 1 則該條件為真。

sinx == 0

如果「x」是 pi 的倍數則條件為真。


若要以字串形式表示比較運算子,運算元必須用雙引號引起來:

x == "ABC" 或 x EQ "ABC"

檢查變量「x」是否包含「ABC」字串 (包含為真,未包含為假)。

x == "" 或 x EQ ""

以及

!x 或 NOT x

檢查變量「x」是否包含空白字串。


note

在條件中,「等於」比較運算子必須由兩個等號 (==) 來表示。例如,如果定義變數「x」的值為 1,您可以輸入條件 x==1。


使用者資料

You can include user data when you define conditions. To change your user data, choose - 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

Email address

user_state

省 (並非所有 LibreOffice 版本都有)


例如,若要對具有特定縮寫 (如「LM」) 的使用者隱入段落、文字或區塊,請輸入條件:user_initials=="LM"。

條件和資料庫欄位

您可以定義存取資料庫或資料庫欄位的條件。例如,您可以使用條件檢查資料庫欄位的內容,或在邏輯表達式中使用資料庫欄位。下表列出了在條件中使用資料庫的更多範例:

範例

涵義

database.sheet.company

Database.Table.Company NEQ ""

Database.Table.Company != ""

如果 COMPANY 欄位不是空白則條件為真。(在第一個範例中,不需要運算子。)

!Database.Table.Company

NOT database.sheet.company

Database.Table.Company EQ ""

Database.Table.Company ==""

如果 COMPANY 欄位為空白,則傳回 TRUE。

Database.Table.Company !="Sun"

Database.Table.Company NEQ "Sun"

如果 COMPANY 欄位中目前的項目不是「Sun」,則傳回 TRUE (驚歎號代表邏輯 NOT)。

database.sheet.firstname AND database.sheet.name

如果資料條目包含名字和姓氏,則傳回 TRUE 。


note

請注意邏輯的 NOT "!" (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. [選擇資料庫]方塊中,按兩下某個通訊錄,按一下「名稱」,然後按一下[插入]。對「姓氏」重複上一個指令。

  4. 在文件中,將游標放置在兩個欄位之間,按空格鍵,然後返回[欄位指令]對話方塊:

  5. 按一下[功能]標籤,然後在[欄位類型]清單中按一下「有條件的文字」。

  6. [條件]方塊中,鍵入:「Addressbook.addresses.firstname」。

  7. [就]方塊中,鍵入一個空格,並使[或]方塊保持空白狀態。

現在,您可以使用條件依名稱欄位的內容來插入文字。

  1. [欄位指令]對話方塊中,按一下[功能]標籤。

  2. [欄位類型]方塊中,按一下「有條件的文字」。

  3. [條件]方塊中,鍵入:Addressbook.addresses.firstname == "Michael"

  4. [就]方塊中,鍵入「Dear」。

  5. [否則] 方塊中,鍵入「Hello」。

  6. 按一下[插入]

Please support us!