新增反覆運算元素

不同於複製和貼上範本中的區塊來複製區段,您可以改用「反覆運算」元素中的 do while 條件內容,在您的範本中建立迴圈。
限制: 「新特性」圖示 反覆運算元素僅適用於第 2 版範本。

開始之前

關於這項作業

Iterations®會分兩階段,與它們所套用或其子元素所套用的查詢搭配運作。首先,在文件產生期間,會一次處理這些元素。接著,會處理套用至「反覆運算」元素的條件。如果符合條件,則會再次處理「反覆運算」元素及其子元素。會繼續處理區段,直到不再符合條件為止。

在第一個階段中,條件中使用的資料必須變更,這樣步驟的數目才會是有限的。這項條件目的是結束區段的處理,而不繼續形成迴圈。在下列範例的步驟 5 中,條件是 teamList 變數不是空白。因此,只要對 teamList 變數輸入資料,就符合條件。當不再輸入資料時,即不符合條件,因此結束重複。

如果要讓查詢多次執行,請在迴圈儲存器內新增動態「資料來源配置」元素,來強制多次起始設定查詢。

程序

  1. 在「選用區」視圖中,選取一個 「疊代」圖示 疊代元素,將它拖曳到範本內容編輯器中。
    註: 您無法將「反覆運算」元素放到主要頁面中。
  2. 選取要複製的範本區段,並拖曳到「反覆運算」元素中。
  3. 選取反覆運算元素。
  4. 在「內容」視圖中,選取特定標籤。
  5. do while 條件值中,按一下配置圖示。
  6. 選取 Script 表示式標籤。 您不能在「簡式值」標籤中輸入 Script,因為它會建立無限迴圈。
  7. 選取變數。 建立一個含有變數的迴圈,可確保以特定的次數來套用迴圈,或藉由使用這個變數來套用諸多的資料值。
  8. 輸入 Script。
  9. 按一下確定
  10. 儲存變更。

範例

建立要使用的團隊成員清單:
  1. 建立外部變數,且名稱是 teamList
  2. 建立外部變數,且名稱是 currentMember
  3. 建立表格元素,並套用條件:
    1. 「表格」圖示「表格」元素新增至範本內容編輯器。
    2. 輸入 1 欄和 2 列。
    3. 用滑鼠右鍵按一下「表格」元素,然後選取資料 > 編輯條件
    4. 選取 teamList 變數。
    5. 對於左運算元,請選取 teamList 變數。
    6. 對於運算子,請選取不等於
    7. 對於右運算元,請勿輸入一值。
    8. 按一下新增。Script 結果是:teamList != ""
    9. 按一下確定
  4. 在第一個資料格中,新增直欄標題:
    1. 「文字」圖示「文字」元素新增至資料格。
    2. 按兩下「文字」元素,開啟內容編輯器。
    3. 輸入 Team Member List 作為標題名稱。
    4. 按一下確定
    5. 在「內容」視圖中,選取字型標籤。
    6. 按一下粗體內容。
    7. 選取 True,並按一下確定
  5. 新增「反覆運算」元素:
    1. 從「選用區」視圖拖曳 「反覆運算」圖示「反覆運算」元素,並放到表格列之間。
    2. 選取反覆運算元素。
    3. 在「內容」視圖中,針對 do while 條件內容,輸入下列 Script:teamList != ""
    4. 將兩個 「儲存器」圖示「儲存器」元素新增到「反覆運算」元素中。第一個「儲存器」用來計算清單中要用於現行列中的第一個名稱。第二個「儲存器」用來結束迴圈,讓它不要再無謂地繼續下去。
    5. 將第二列及其內容拖曳到「反覆運算」元素中,並放在儲存器元素之後。
  6. 將變數指派給第一個儲存器元素:
    1. 用滑鼠右鍵按一下第一個「儲存器」元素。
    2. 選取資料 > 編輯指派
    3. 按一下新增
    4. 選取 currentMember 變數,並按一下確定
    5. 選取 Script 表示式標籤。
    6. 選取 teamList 變數,並輸入下列 Script:
      var pos = teamList.indexOf( ",");
      
      if ( pos >=0)
      {
         // get the first member ( till the first comma)
          teamList.substr( 0, pos);
      }
      else
      {
          // last member
          teamList;
      }
    7. 按一下確定,再按一下確定
  7. 將變數指派給第二個儲存器元素:
    1. 用滑鼠右鍵按一下第二個「儲存器」元素。
    2. 選取資料 > 編輯指派
    3. 按一下新增
    4. 選取 teamList 變數,並按一下確定
    5. 選取 Script 表示式標籤。
    6. 選取 teamList 變數,並輸入下列 Script:
      var pos = teamList.indexOf( ",");
      
      if ( pos >=0 && pos < teamList.length)
      {
         // get the first author ( till the first comma)
          teamList.substr( pos + 1);
      }
      else
      {
          // last member, remove it
          ""
      }
  8. currentMember 變數從「大綱」視圖拖曳到第二列的資料格中。
  9. 測試輸出。

意見