設定如何格式化和計算資料

定義範本元素的內容或其內容值,以便格式化和計算資料。

關於這項作業

您可以利用簡式值、資料表示式或 Script 表示式來定義範本的內容。

資料表示式和 Script 表示式都會提供內部變數供您選取。
表 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. 使用下列其中一個選項來指定內容:
    • 如果要使用簡式值,請按一下簡式值標籤,並輸入一值。
    • 如果要使用資料表示式,請按一下資料表示式標籤,並執行下列任一動作:
      • 展開變數,並選取要使用的變數。
      • 展開屬性,並選取要使用的資料屬性。
    • 如果要使用 Script 表示式,請按一下 Script 表示式標籤。
      • 展開變數,選取一個變數,並輸入可使用現行環境定義中之變數的 JavaScript 程式碼。
      • 展開屬性,選取一個屬性,並輸入可使用現行環境定義中之資料屬性的 JavaScript 程式碼。
      • 如果您是從 XHTML 複製 Script,您可以選取 XHTML 輸入選項,以容許編輯 Script 中包含的 XHTML 標籤。
      • 如果您要將範本產生為 XHTML 輸出,您可以選取 XHTML 輸出選項,剖析 Script,並將 Script 呈現為 Rich Text。
      舉例來說,如果要選取屬性作為絕對數字、名稱和值,請將 JavaScript 程式碼輸入為:
      "object:"+Absolute Number+
      "attribute"+name+
      "value"+_value
      提示: 如果您有一個相當複雜的範本,您可以使用名稱說明內容,來說明範本中的每一個區塊。依預設,名稱和說明欄位是空白的,名稱內容顯示在範本中,說明內容可以顯示在範本元素的提示欄位中。這有助於其他人重複使用範本。

      您也可以選擇匯入現有的 Script 或在 JavaScript 編輯器中工作,而不使用「Script 表示式」標籤:

    1. 如果您要包含另一個檔案中的新 Script,請按一下包含 Script,並從電腦、遠端伺服器或「文件建置器」元件中選取一個檔案。按一下確定
      提示: 您可以在 Script 程式碼中設定程式庫 Script 內容,以便在範本的不同部分內重複使用 JavaScript 函數。如果要設定程式庫 Script 內容,請移至 JavaScript Code 元素的內容視圖,選取特定標籤,並啟用程式庫 Script勾選框。 如需程式庫 Script 內容的相關資訊,請參閱 JavaScript 程式碼元素內容

      如果是從電腦或遠端伺服器選取的檔案,會在 JavaScript 編輯器中,開啟所選檔案中之 JavaScript 程式碼的副本。

      如果是從「文件建置器」中選取的檔案,會開啟「使用 Script 參照」視窗。您必須選擇是否要在範本中包含 JavaScript 作為參照鏈結:
    • 如果您選取,會將指向 JavaScript (.js) 檔案的鏈結內嵌在 <Script> 標籤內。例如,下列參照鏈結會新增至 JavaScript 編輯器,且不得修改:
      <Script src= "library://api/scripts/51"></Script>
      記住: 當您從範本產生文件,並在範本中以 JavaScript 作為參照鏈結,「文件建置器」必須已啟動,並且已連接至 Document Studio。如需詳細資料,請參閱連接至「文件建置器」元件主題。
    • 如果您選取,則會在 JavaScript 編輯器中開啟所選檔案中之 JavaScript 程式碼的副本。
    1. 按一下在編輯器中開啟,以在 Eclipse JavaScript 編輯器中輸入 Script。 這時,Script 會以暫時的 .js 檔案形式,在新的編輯器標籤中開啟,這樣您就可以編輯 JavaScript,並透過「大綱」視圖中的選項來管理 Script。在編輯 Script 之後,儲存您所作的變更,並關閉暫時的 JavaScript 編輯器標籤,回到「輸入 JavaScript 程式碼元素的程式碼」視窗。
    2. 按一下測試 Script,驗證程式碼。
    3. 按一下確定,儲存變更並結束視窗。
  3. 按一下確定來儲存變更。

範例

資料表示式使用範例
如果要在表格中自動顯示產生的列號,請執行下列動作:
  1. 將表格元素拖曳至編輯器。
  2. 針對表格輸入 3 列和 3 欄,並按一下確定
  3. 將文字元素拖曳至每一個資料格中。
  4. 選取第一列中的第一個資料格。
  5. 內容視圖中,選取內容標籤,並按一下 「配置」圖示。按兩下元素同樣會開啟相同的視窗。
  6. 按一下資料表示式標籤,並選取 _row_number。然後按一下確定
  7. 針對第二列和第三列中的第一個資料格,重複上述動作。
  8. 移除列號資料格的邊框:
    1. 按住 Ctrl 鍵,並選取每一列中的第一個資料格。當您選取多個元素時,您可以同時編輯這所有元素的內容。
    2. 在「內容」視圖中,選取邊框標籤。
    3. 針對樣式內容,選取 none
  9. 儲存範本。
  10. 產生輸出來測試範本。第一個資料格會包含列號,且其周圍不會有邊框:
    輸出範例
  11. 在範本中,完成將資料來源綱目中的屬性新增至其餘的資料格,以便完成表格。