您可以引用先前定义变量以返回它的值。要在 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 的值。