使用 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)
%}
%}