Net.Data 宏文件包含 HTML 块,以及 HTML 块中的函数,它们在 Web 浏览器上 生成 HTML 输出。在宏文件中,必须指定至少一个 HTML 块。HTML 块的内容控制 Net.Data 调用的 其余部分。
任何有效的 HTML 语句都可以出现在 HTML 块中。另外,在 HTML 块中还可以使用 INCLUDE 语句、函数调用和变量引用。下例显示 Net.Data 宏中的 HTML 块的一般用法:
%DEFINE DATABASE="MNS96" %HTML(INPUT) { <H1>Hardware Query Form</H1> <HR> <FORM METHOD="POST" ACTION="/cgi-bin/db2www/equiplst.d2w/report"> <dl> <dt>What hardware do you want to list? <dd><input type="radio" name="hdware" value="MON" checked>Monitors <dd><input type="radio" name="hdware" value="PNT">Pointing devices <dd><input type="radio" name="hdware" value="PRT">Printers <dd><input type="radio" name="hdware" value="SCN">Scanners </dl> <HR> <input type="submit" value="Submit"> </FORM> %} %FUNCTION(DTW_SQL) myQuery() { SELECT MODNO, COST, DESCRIP FROM EQPTABLE WHERE TYPE=$(hdware) %REPORT{ <B>Here is the list you requested:</B><BR> %ROW{ <HR> $(N1): $(V1) $(N2): $(V2) <P> $(V3) %} %} %} %HTML(REPORT){ @myQuery() %}
您可以如下例所示来从 HTML 链接中调用 Net.Data 宏:
<a href="http://www.ibm.com/cgi-bin/db2www/equiplst.d2w/input">List of hardware</a>
当应用程序用户单击此链接时,Web 浏览器调用 Net.Data,Net.Data 语法分析宏文件。当 Net.Data 开始处理在调用上指定的 HTML 块时(在此情况下为 HTML(INPUT) 块),它开始处理其中 的文本。Net.Data 对于不能识别为 Net.Data 宏语言结构的任何东西,都假定为 HTML 语句,并发送给浏览器来显示。
在用户作出选择并按了 Submit 按钮之后,Net.Data 运行 HTML FORM 元素的 ACTION 部 分,这指出了对 Net.Data 宏的 HTML(REPORT) 块的调用。然后,Net.Data 象处理 HTML(INPUT) 块那样处理 HTML(REPORT) 块。
Net.Data 然后处理 myQuery() 函数调用,该函数调用依次调用 SQL FUNCTION 块。用在输入表中返回的值代替 SQL 语句中引用的 $(hdware) 变量之后,Net.Data 询问运行。在此点,Net.Data 再次开始将 HTML 报表发送给浏览器, 浏览器根据 REPORT 块中指定的 HTML 语句来显示查询结果。
Net.Data 完成 REPORT 块的处理之后,返回至 HTML(REPORT) 块,并结束处理。
Net. Data 在每次被调用时只处理一个 HTML 块。但是,通过使用 HTML 链接和表,可以让人 很容易地启动另一个 HTML 块上的另一个 Net.Data 调用,这都由您控制。