為範本元素建立條件

使用條件編輯器,以現行環境定義中可存取的資料屬性和變數,來定義 JavaScript 表示式。

程序

  1. 用滑鼠右鍵按一下元素,然後選取資料 > 編輯條件
  2. 在「設定現行元素的條件」視窗中,展開變數,然後選取屬性
    提示: 只能顯示第一層查詢和查詢屬性(若有的話)。若想查看第二層,您必須在元素中新增另一項查詢,並在該元素中新增條件。
  3. 使用下列其中一個選項,來輸入 JavaScript 程式碼:
    • 在這個視窗中手動撰寫 Script
    • 從外部編輯器複製 Script,並貼到這個視窗中
    • 按一下併入 Script,並從電腦、遠端伺服器或「中央管理」元件選取一個檔案
    • 使用條件編輯器:
      1. 針對左運算元,選取一個屬性或變數。
        註: 如果您使用「設定現行元素的條件」視窗中的工具,會自動在樹狀視圖中選取您使用的任何資料屬性或變數。如果您手動輸入條件,您必須手動選取資料屬性或變數。
      2. 選取運算子
      3. 針對右運算元,從下拉功能表中選取一個屬性或變數。
        註: 如果條件的左運算元和右運算元皆來自相同的屬性名稱,但屬於兩個不同的查詢時,該條件會無法作用。您必須對兩個屬性設定不同的別名,條件才能作用。
      4. 按一下新增。選取的條件會新增至文字框中。
  4. 選擇性的: 選取 XHTML 輸入選項,以容許編輯 Script 中包含的 XHTML 標籤。 如果您要複製 Rich Text,或在條件中使用 Rich Text,必須選取 XHTML 輸入選項。
    重要: 無效 XHTML 導致文件產生失敗。 儲存變更之前,請確認您的 XHTML 有效。
  5. 選擇性的: 按一下測試執行,以便先測試條件,再將它套用至現行元素。 如果 Script 執行正確,則會顯示 true。如果 Script 執行不正確,會顯示 false
  6. 按一下確定

結果

當您將條件套用至元素時,在範本內容編輯器中,該元素旁會顯示 「條件」圖示 圖示:

「段落」元素中的「條件」圖示

範例:使用條件編輯器來建構條件

請檢閱這些範例,以協助您使用條件編輯器來建構自己的條件。

在 Rational® DOORS® 綱目中具有物件標題的物件:
  • 展開屬性 > query
  • 選取 [Object Heading] Object_Heading
  • 針對左運算元,選取 [Object Heading] Object_Heading
  • 針對運算子,選取不等於
  • 對於右運算元,則不輸入任何值。
  • 按一下新增。JavaScript 會顯示成 Object_Heading != ""
REST 綱目中的「高優先順序」需求:
  1. 展開屬性 > query
  2. 選取 Priority
  3. 針對左運算元,選取 Priority
  4. 針對「運算子」,選取等於
  5. 針對右運算元,輸入 High
  6. 按一下新增。JavaScript 會顯示成 Priority == "High"
在元素中建立變數並設定這項條件,來移除屬性中的重複值:
  1. 展開變數 > variable
  2. 選取 variable
  3. 針對左運算元,選取 variable
  4. 針對「運算子」,選取等於
  5. 對於右運算元,則不輸入任何值。
  6. 按一下新增。JavaScript 會顯示成 variable == ""

下一步

如果您發現有變數評估不正確,請檢查該變數是否為文字字串 truefalse,例如 variable == "true"

在某些情況下,會將變數值評估為布林值,而不是文字字串值。範例:如果 variable == "true" 是布林值 true 而不是字串 "true",則該變數會誤評估為 false。這表示在資料中找不到單字 true 一值,而不是尋找是否存在任何值。當變數是計算而來的,而不是來自於配置報告時在其中提供該變數的文件規格,也不是來自於將該變數指定成變數預設值的範本,就會發生這個問題。

為了確保變數評估正確,請使用下列其中一個選項來修訂條件:
  • 選項 1:讓條件可以同時處理文字字串和布林值。

    (variable == boolean_true_or_false) || ( variable == "string")

    範例:(variable == true) || ( variable == "true")

  • 選項 2:如果您事先就知道變數會評估為布林值或字串值,您可以設想該值類型來設計條件。
    • 布林值:variable == boolean_true_or_false

      範例:variable == true

    • 字串值:variable == "string"

      範例:variable == "true"

為同名的屬性建立別名

在 Script 化的過濾器或條件中,當條件的左運算元和右運算元來自相同的屬性名稱,但屬於兩個不同的查詢時,該條件會無法作用。您必須對兩個屬性設定不同的別名,條件才能作用。

開始之前

編輯 Document Studio 喜好設定:
  1. Rational Publishing Engine Document Studio 中,按一下視窗 > 喜好設定
  2. 展開 RPE,並按一下文件設計
  3. 使用綱目註釋來顯示欄位中,選取,並按一下確定

程序

如果要區分同名的屬性,您可以使用「別名」特性,就不會有語義不明確的情況。在您新增條件來驗證模組說明是否等於 DOORSObject 的說明時,請用滑鼠右鍵按一下屬性來設定別名。

結果

現在,Query/Object/Object Text 屬性會識別為 $1_Object Text,且可以正確處理條件。

下一步

提示: 如果要檢查條件如何套用至資料,請按一下測試。在「測試」視窗中,按一下執行

意見