您可以參照先前定義的變數以傳回其值。若要參照 Net.Data 巨集中的變數, 請在 $( 和 ) 內指定變數名稱。 例如:
$(variableName) $(homeURL)
當 Net.Data 發現一項變數參照時,它會以變數值取代該變數參照。 變數參照可以含有字串、變數參照及函數呼叫。
您可以動態建立變數名稱。 透過這個技術,當無法事先決定列示中的數字時,您可以使用迴路,來處理可變大小的表格,或在於執行時所建置的列示內輸入資料。 例如,您可以建立 HTML 套表元素的列示,這些元素是依據 SQL 查詢傳回的記錄而建立的。
若要使用變數作為文字呈現陳述式的一部份,請在您的巨集的 HTML 區塊中參照它們。
無效變數參照:無效變數參照將解析為空字串。 例如,如果變數參照含有如 (!) 的無效字元,則參照將解析為空字串。
有效變數名稱必須以英數字元或底線開頭, 且它們可以由英數字元所構成,包括句點、底線及 # 符號。
範例 1:鏈結中的變數參照
如果您已定義變數 homeURL:
%DEFINE homeURL="http://www.ibm.com/"
您可以用 $(homeURL) 來參照首頁,並建立一個鏈結:
<a href="$(homeURL)">Home page</a>
您可以參照 Net.Data 巨集的許多部份中的變數; 請參閱本章中的語言結構,來決定巨集中有哪些部份的變數容許被參照。如果在參照變數時,尚未定義它們, Net.Data 將傳回空的字串。 僅有變數參照不能定義變數。
範例 2:動態建立變數參照
假設您執行具有任意數目的 SQL SELECT 陳述式。 您可以使用下列 ROW 區塊,建立具有輸入欄位的 HTML 套表:
... %ROW { <input type=text name=@dtw_rconcat("I", ROW_NUM) size=10 maxlength=10 /> %} ...
因為您建立了 INPUT 欄位,所以您可能想要存取當套表提出到您的巨集進行處理時, 使用者所輸入的值。您可以編寫迴路,來取回可變長度列示中的值:
<pre> ... @dtw_assign(rowIndex, "1") %while (rowIndex <= rowCount) { The value entered for row $(rowIndex) is: $(I$(rowIndex)) @dtw_add(rowIndex, "1", rowIndex) %} ... </pre>
Net.Data 首先會使用 I$(rowIndex) 參照來建立變數名稱。 例如,第一個變數名稱將是 I1。然後,Net.Data 將使用該值, 並解析為變數的值。
範例 3:具有巢狀變數參照及函數呼叫的變數參照
%define my = "my" %define u = "lower" %define myLOWERvar = "hey" $($(my)@dtw_ruppercase(u)var)
變數參照會傳回 hey 的值。