定義及指派變數

在設計範本時,可能需要計算值或使資料屬性可在通常無法使用它們的環境定義中使用。針對這些情況,您可以定義變數並指派其值。這些值可以是靜態資料,也可以是現行環境定義中可用的資料。

關於這項作業

變數可以在執行時期用來作為計算之資料的位置保留元(變數指派),也可以在文件規格中提供。與資料屬性不同,您也可以在主要頁面中使用變數。
變數有兩種類型:
  • 使用者定義變數:使用者定義變數是由範本設計者所定義。使用者定義變數可以是內部或外部變數。
    • 內部使用者定義變數:將變數指定為內部變數來執行計算或暫時儲存資訊,例如,用來將資料帶入主要頁面的變數。內部變數不會顯示在文件規格中;因此,您不能提供其值。
    • 外部使用者定義變數:在提供變數值時將變數指定為外部變數。外部變數會顯示在文件規格中。請參閱建立文件規格
  • Rational® Publishing Engine 變數:Rational Publishing Engine 變數是可用於文件範本中的內部變數。
    表 1. Rational Publishing Engine 內部變數
    變數 說明
    _cell_number 現行列中的資料格號碼。如果元素不是資料格,則值是 0。您可以從「資料表示式」或「Script 表示式」標籤來使用 _cell_number
    _element_id 範本內的元素號碼。保留在範本內部並用於除錯。您可以從「資料表示式」或「Script 表示式」標籤來使用 _element_id
    _element_level 元素的遞迴層次。如果在「資料」標籤的「遞迴層次」內容中沒有為元素設定一值,則值是 1。 您可以從「資料表示式」或「Script 表示式」標籤來使用 _element_level
    _row_number 現行表格中的列號。如果列元素沒有包含這個元素,則值是 0。您可以從「資料表示式」或「Script 表示式」標籤來使用 _row_number
    _sessionInfo 來自範本或文件規格的執行時期內容資訊。請在「Script 表示式」標籤中,選取 _sessionInfo 變數,並輸入 Script。如果要在輸出中產生內容的預設值,請使用其中沒有值的空引號。Script 範例:

    _sessionInfo.getDocspecProperty("property", "");
    _sessionInfo.getTemplateProperty("property", "");
    _sessionInfo.getDatasourceProperty("data_source_name","property", "");
    _sessionInfo.getOutputProperty("output_type","property", "");
    _sessionInfo.docspecVersion
    _sessionInfo.templateVersion
    _sessionInfo.engineVersion
    _sessionInfo.buildNumber

    對於 getDocspecProperty,您可以使用現有的文件規格內容或建立自訂 meta 資料內容。

    _sessionLogger 基於除錯目的,您可以將自訂資訊、錯誤、警告或除錯訊息,顯示在 TEMP\rpe\rpe.log 檔、「主控台」視圖或「問題」視圖中。 訊息會顯示於定義在 log4j.properties 檔中的位置中。

    預設值是將參考訊息顯示在「主控台」視圖中,而不是顯示在 rpe.log 檔中。

    請在「Script 表示式」標籤中,選取 _sessionLogger 變數,並輸入 Script。您可以使用下列其中一種方法,來產生日誌項目:
    1. _sessionLogger.debug(message)
    2. _sessionLogger.info(message)
    3. _sessionLogger.error(message)
    4. _sessionLogger.warn(message)

    當您在 Script 中決定要輸入成 message 的文字時,請考量使用視覺化標註,例如:您姓名的首字母或使用者名稱,以及使用您範本中的變數,來建立有意義的訊息。

    _sessionUtils 在 Script 表示式標籤中,您可以使用這個變數,對稱為 tidyXHTML 的 Script 執行功能。當您注意到不當 XHTML 編碼造成輸出中出現間距區塊時,這個變數就可派上用場。使用 _sessionUtils 變數時,會處理字串引數並清除 XHTML,這樣輸出中就不會顯示額外的間距。

    範例:_sessionUtils.tidyXHTML(text);

    當您使用 _sessionUtils 變數時,也請在「Script 表示式」標籤中選取 XHTML 輸入XHTML 輸出選項。
    註: 含有這個變數的範本可以載入至舊版 Rational Publishing Engine 中,但是無法正確評估 Script。

程序

  1. 大綱視圖中,按一下變數 > 插入 > 新建變數。這時會開啟「新建變數」視窗。
  2. 在下列欄位中輸入變數詳細資料:
    1. 名稱:輸入變數的名稱。 變數名稱必須使用有效的 Java™ 或 JavaScript ID,因為在 Script 中會使用它們。JavaScript ID 的規則:
      • 開頭必須是字母、底線 (_) 或錢幣符號 ($)
      • 後續的字元可以是數字 (0-9)
      • 字母有區分大小寫
      • 可以使用 ISO 8859-1 或 Unicode 字母,例如 å 或 ü
      • 可以使用 \uXXXX Unicode ESC 序列作為字元
    2. 說明:輸入變數的說明。
    3. 預設值:輸入變數的值。
    4. 存取:從清單中選取變數為內部或外部變數。
      • 內部變數不會顯示在文件規格中;因此您不能提供其值。
      • 外部變數會顯示在文件規格中,您可以提供其值。
  3. 如果要指派變數給某個元素,請執行下列動作:
    提示: 請儘可能指派變數給儲存器元素。 該變數會套用至儲存器元素內的元素。 例如,您可能要使用表格內的變數,以便能夠對每一個變數新建一列。如果您指派變數給表格元素,就可以對每一個變數建立一個表格。有時候這些連續的表格會合併,但有時候會顯示為個別的表格。如果您在表格內新增儲存器元素,並將該列拖曳到儲存器元素中,接著指派變數給儲存器元素,則會對每一個變數建立包含列的單一表格。
    具有儲存器元素的表格元素。儲存器元素內有一個具有三個資料格元素的列元素。
    1. 用滑鼠右鍵按一下該元素,然後按一下資料 > 編輯指派 這時會開啟「指派編輯器」視窗。
    2. 按一下新增 這時會開啟「選取變數」視窗。
    3. 輸入變數的名稱,然後按一下確定
    4. 在「指派編輯器」視窗中按一下確定

結果

如此會定義所選的變數,並將它指派給現行元素。

當您指派變數給元素時,該元素會在範本內容編輯器中顯示 「變數指派」圖示 圖示。

含有查詢和變數指派的段落元素

下一步

提示: 您可以用滑鼠右鍵按一下指派了變數的元素,然後選取搜尋 > 元素中的變數參照,來搜尋該元素中使用的變數指派清單。這時會開啟「搜尋」視圖,並顯示變數指派的清單。您可以在結果中按兩下某個變數指派來編輯它。

您可以用滑鼠右鍵按一下某個元素,然後選取搜尋 > 元素中的所有參照,來搜尋該元素中使用的變數指派、屬性和查詢清單。這時會開啟「搜尋」視圖,並顯示一份清單。您可以在結果中按兩下某個項目來編輯它。


意見