使用 WHILE 區塊,於 Net.Data 巨集中執行迴路。如同 IF 區塊, WHILE 區塊提供測試數個條件, 然後基於條件測試的結果,來執行陳述式區塊的能力。 不像 IF 區塊,陳述式區塊可基於條件測試的結果,不限次數地執行。
您可以在 HTML 區塊、REPORT 區塊、ROW 區塊、 MACRO_FUNCTION 區塊及 IF 區塊內指定 WHILE 區塊, 並且可以使用巢狀。 有關 WHILE 區塊的語法, 請參閱 Net.Data 參考手冊中語言結構一章。
Net.Data 處理 WHILE 區塊的方式,與處理 IF 區塊的方式完全相同,但會每次會透過迴路來重新評估條件。 而且,如同其他條件式迴路結構一樣,若撰寫條件不正確,則處理程序也可能會陷入無限迴路內。
範例:具有 WHILE 區塊的巨集檔案
%DEFINE loopCounter = "1"
%HTML(build_table) {
%WHILE (loopCounter <= "100") {
%{ generate table tag and column headings %}
%IF (loopCounter == "1")
<TABLE BORDER>
<TR>
<TH>Item #
<TH>說明
%ENDIF
%{ 產生個別橫列 %}
<TR>
<TD>$(loopCounter)
<TD>@getDescription(loopCounter)
%{ 產生結束表格標籤 %}
%IF (loopCounter == "100")
%ENDIF
%{ 增加迴路計數 %}
@dtw_add(loopCounter, "1", loopCounter)
%}
%}