Contents
Index 🔎︎

# 定義條件

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

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

1. 條件文字：如果條件為真則顯示文字 A；或如果條件為假，則顯示文字 B。

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

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

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

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

TRUE | 總是滿足條件。或者，您也可以輸入任意一個不等於 0 的數值作為條件文字。
FALSE | 條件未滿足。您也可以指定數值為 0。

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

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

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

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」是否包含空白字串。

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

## 欄位指令中所使用條件的範例

下列範例使用條件文字欄位，但這些範例也可以採用至任何可與條件連結的欄位。條件所使用的語法也用於隱入的文字、隱入的段落、任何資料條目或下一個資料條目等欄位。

## 若要顯示基於頁數的條件文字，請：

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. 按一下[插入]。