定義條件
條件為邏輯表示式,您可以用來控制文件中的欄位 和區段 。雖然以下範例適用於欄位,但它們也適用於區塊。
您可以為以下欄位類型定義條件:
-
條件文字:如果條件為真則顯示文字 A;或如果條件為假,則顯示文字 B。
-
隱入文字:如果條件為真則隱入欄位的內容。
-
隱入段落:如果條件為真則隱入段落。
-
任何資料條目和下一個資料條目:控制存取資料庫資料條目。
定義條件最簡單的方法是使用下列值,直接在[條件]方塊中鍵入邏輯表達式:
TRUE |
總是滿足條件。或者,您也可以輸入任意一個不等於 0 的數值作為條件文字。 |
FALSE |
條件未滿足。您也可以指定數值為 0。 |

如果您保留[條件]方塊為空白,則解譯為未符合條件。
當您定義某個條件時,請使用相同的元素 以定義公式,即比較運算子、數學與統計函式、數字格式、變數與常數。
定義條件時,您可以使用下列變量類型:
-
文件特性使用統計資料的預先定義的 LibreOffice 變數
-
自訂變量,由「設定變量」欄位建立
-
基於使用者資料的變量
-
基於資料庫欄位內容的變量
在條件表達式中,您無法使用內部變量 (如頁碼和章節號)。
條件和變量
下列範例使用了稱為「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」是否包含空白字串。 |

在條件中,「等於」比較運算子必須由兩個等號 (==) 來表示。例如,如果定義變數「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.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 。 |

請注意邏輯的 NOT "!" (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 註冊。
-
選擇[插入] - [欄位指令] - [其他],然後按一下[資料庫]標籤。
-
在[欄位類型]清單中,按一下「合併列印欄位」。
-
在[選擇資料庫]方塊中,按兩下某個通訊錄,按一下「名稱」,然後按一下[插入]。對「姓氏」重複上一個指令。
-
在文件中,將游標放置在兩個欄位之間,按空格鍵,然後返回[欄位指令]對話方塊:
-
按一下[功能]標籤,然後在[欄位類型]清單中按一下「有條件的文字」。
-
在[條件]方塊中,鍵入:「Addressbook.addresses.firstname」。
-
在[就]方塊中,鍵入一個空格,並使[或]方塊保持空白狀態。
現在,您可以使用條件依名稱欄位的內容來插入文字。
-
在[欄位指令]對話方塊中,按一下[功能]標籤。
-
在[欄位類型]方塊中,按一下「有條件的文字」。
-
在[條件]方塊中,鍵入:Addressbook.addresses.firstname == "Michael"
-
在[就]方塊中,鍵入「Dear」。
-
在 [否則] 方塊中,鍵入「Hello」。
-
按一下[插入]。