IBM Books

Net.Data 管理与程序设计指南,OS/2、Windows NT 以及 UNIX 版

报表块

使用 REPORT 块语言结构来格式化并显示来自 FUNCTION 块的数据输出。虽然可以指定 HTML 标 记、宏变量引用和函数调用的任何有效组合,但是此输出是典型的表格数据。通常可以任选地在 REPORT 块上指定表名。 如果未指定表名,Net.Data 将使用 FUNCTION 块的参数表中的第一个输出表格中的表数据。如果在 FUNCTION 块上没有指定一个表格,Net.Data 将使用缺省表数据。

REPORT 块具有三部分,每部分都是可选的:

要避免显示来自 ROW 块的任何表格输出,可让 ROW 块为空或整个省略它。

您可以在 REPORT 块中使用几个 Net.Data 提供的变量来访问 Net.Data 宏结果表格中的数 据。表格处理变量中描述了这些变量。关于附加细节,请参阅Net.Data 参考中的“报表变量”节。

要提供首部和脚注信息,必须在 ROW 块之前和之后提供文本。Net.Data 处理 ROW 块之前发现 的任何东西,并将它们作为首部信息来对待,将 ROW 块之后发现 的任何东西作为脚注信息来对待。象 HTML 块一样,Net.Data 将首部、ROW 和脚注块中未识别为 宏语言结构的任何东西作为 HTML 对待,并将 HTML 数据发送给浏览器。

还可以在 REPORT 块中使用函数和变量。

要让 Net.Data 打印使用预格式化文本的缺省报表,就不要在宏文件中包含 REPORT 块。以下例 子显示缺省报表格式:

 SHIPDATE   | RECDATE    | SHIPNO   |
-------------------------------------
 25/05/1997 | 30/05/1997 | 1495194B |
-------------------------------------
 25/05/1997 | 28/05/1997 | 2942821G |
-------------------------------------           

要使用 HTML 标记来代替预格式化文本,可将 DTW_HTML_TABLE 设置为 YES。

要禁用缺省报表的打印,可将 DTW_DEFAULT_REPORT 设置为 NO,或指定一个空的 REPORT 块。例如:

%REPORT{%}

下例显示如何使用特殊变量和 HTML 标记来定制报表格式。它显示来自表格 CustomerTbl 的姓名、电话号码和传真号码:

%FUNCTION(DTW_SQL) custlist() {
     SELECT Name, Phone, Fax FROM CustomerTbl
%REPORT{
<I>Phone Query Results:</I>
<BR>
=====================
<BR>
%ROW{
   Name: <B>$(V1)</B>
<BR>
Phone: $(V2)
<BR>
Fax: $(V3)
<BR>
------------------------------
<BR>
   %}
   Total records retrieved: $(NUM_ROWS)
   %}
   %}

Web 浏览器中的结果报表如下所示:

Phone Query Results:
====================
Name: Doen, David
Phone: 422-245-1293
Fax: 422-245-7383
------------------------------
Name: Ramirez, Paolo
Phone: 955-768-3489
Fax: 955-768-3974
------------------------------
Name: Wu, Jianli
Phone: 525-472-1234
Fax: 525-472-1234
------------------------------
Total records retrieved: 3

Net.Data生成报表是通过:

  1. 在报表的开头打印一次 Phone Query Results:

  2. 对于检索到的每一行,分别为 Name, Phone, and Fax 给定变量 V1V2V3 的值。

  3. 为了提高可读性,在检索到的每行之后图一条线。

  4. 在报表结尾打印一次字符串 Total records retrieved: 以及 NUM_ROWS 的值。

您可以使用存储过程的多个 REPORT 块来返回多个结果集合。在使用 DTW_SQL 语言 环境时,只对存储过程支持多个报表块。请参阅调用存储过程以学习如何从一个存储过程返回多个结果集合。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]