IBM Books

Net.Data 参考


Net.Data 表格处理变量

除非另有说明,否则 Net.Data 定义这些变量供 REPORT 和 ROW 块使用。使用这些变量 引用您的查询所返回的值。

限制:不要在 DEFINE 段定义这些变量的值。

Nn


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

由对列 n 的函数调用或查询返回的列名。Nn 在 REPORT 和 ROW 块中有效。

Net.Data 为表格中的每一列都分配变量;在变量引用中使用此变量,来指定您想要引 用的列号。

例 1:一个列名的变量引用

The name of column 2 is $(N2).

例 2:用 DTW_ASSIGN,保存一个列名的值,供 REPORT 块外使用

%define col1=""
...
%function (DTW_SQL) myfunc() {
  select * from atable
  %report {
     @dtw_assign(col1, N1)
     %row{ %}
  %}
%}
 
%html(report) {
@myfunc()
The column name for the first column is $(col1)
%}
这个例子显示了如何使用 DTW_ASSIGN 在 REPORT 块之外使用此变量。有关的更多信息,请参阅DTW_ASSIGN

例 3:Nn 在一个 HTML 表格内 部来定义列名

%REPORT{
<H2>Product directory</H2>
<TABLE BORDER=1 CELLPADDING=3>
<TR><TD>$(N1)</TD><TD>$(N2)</TD><TD>$(N5)</TD>
%ROW{
<TR><TD>$(V1)</TD><TD>$(V2)</TD><TD>$(V3)</TD>
%}
</TABLE>
 
%}

NLIST


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

包含一张来自函数调用或者查询的结果的所有列名的列表。缺省分隔符是一个空格。

此变量是一个预定义的变量,它的值不能修改。将此变量用作为变量引用。

例 1:带 ALIGN 设置的列名列表

%DEFINE ALIGN="YES"
...
%FUNCTION (DTW_SQL) myfunc() {
select * from MyTable
%report{
Your query was on these columns: $(NLIST).
%row {
...
%}
%}
%}

此列名列表在列名之间使用一个空格(ALIGN 设置成 YES)。

例 2:把分隔符改成 " | " 的 %LIST 变量

%DEFINE %LIST " | " NLIST
...
%FUNCTION (DTW_SQL) myfunc() {
select * from MyTable
%report{
Your query was on these columns: $(NLIST).
%row {
...
%}
%}
%} 

NUM_COLUMNS


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

Net.Data 在报表块中正在处理的表格列数;这些列由一个函数调用或查询来返回。

此变量是一个预定义的变量,它的值不能修改。将此变量用作为变量引用。

例 1:NUM_COLUMNS 用作一个变量引用,NLIST

%REPORT{
Your query result has $(NUM_COLUMNS) columns: $(NLIST).
...
%}

NUM_ROWS


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT




X


目的

Net.Data 正在 REPORT 块中处理的表格中的行数。行的数目受上限参数值的影响,该参数给 Net.Data 表格定义来存放数据。 例如,如果上限设置成 30,但是 SELECT 语句返回 1000 行,则 NUM_ROWS 的值是 30。另 外,如果上限设置成 30,而 SELECT 语句返回 20 行,则 NUM_ROWS 等于 20。参阅 TABLE 语句获取 TABLE 语句和上限参数的更多信息。

只要 START_ROW_NUM 不传送给语言环境,则 NUM_ROWS 不受 START_ROW_NUM 的值的影响。例如, 如果 START_ROW_NUM 设置成 5 ( 指定显示在 Web 页面上的表格应当在第 5 行开始处理),而 SELEC T 语句返回 25 行,则 NUM_ROWS 设置成 25,而不是 21 。前面的四行从表格中被舍弃,但是仍包 含在 NUM_ROWS 值中。但是,如果 START_ROW_NUM 传送给了语言环境,那么 NUM_ROWS 将只包含从 START_ROW_NUM 指定的行开始算的行数。在上面的例子中,NUM_ROWS 将设置成 21。

NUM_ROWS 在 REPORT 和 ROW 块中有效。

此变量是一个预定义的变量,它的值不能修改。将此变量用作为变量引用。

例 1:显示 REPORT 块中正在处理的名字个数

%DEFINE DTW_SET_TOTAL_ROWS="YES"
 
%REPORT{
<H2>E-mail directory</H2>
<UL>
%ROW{
<LI>Name: <a href="mailto:$(V1)">$(V2)</a><BR>
Location: $(V3)
%}
</UL>
Names displayed: $(NUM_ROWS)<BR>
Names found: $(TOTAL_ROWS)
%}

ROW_NUM


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

一个表格变量,其值在 Net.Data 表格中接受处理,Net.Data 每次增加一行。此变量作 为一个计数器,它的值是当前正在处理的行号。

此变量是一个预定义的变量,它的值不能修改。将此变量用作为变量引用。

RPT_MAX_ROWS 可以影响 ROW_NUM 的值。例如,如果表格中有 100 行,并且您已把 RPT_MAX_ROWS 设置为 20,则 ROW_NUM 的最终值是 20,因为第 20 行是要处理的最后一行。

ROW_NUM 只在 ROW 块中有效。

例 1:通过使用 ROW_NUM 为表格中每一行标号,处理 HTML 输出中的列

%REPORT{
<TABLE BORDER=1>
<TR><TD> Row Number </TD> <TD> Customer </TD>
%ROW{
<TR><TD> $(ROW_NUM) </TD> <TD> $(V_custname) </TD>
%}
</TABLE>
%}

REPORT 块产生一张象下面显示的表格。


Row Number Customer
1 Jane Smith
2 Jon Chiu
3 Frank Nguyen
4 Mary Nichols

TOTAL_ROWS


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X
X X X X

目的

一次查询返回的总行数,它与 TABLE 语言结构的upper_limit 值无关。例如,如果 RPT_MAX_ROWS 设置为最多显示 20 行,但查询返回 100 行, 则在完成 ROW 处理后,此变量设置为 100。

此变量是一个预定义的变量,它的值不能修改。将此变量用作为变量引用。

操作系统区别:

必需:要使用此变量,必须把 DTW_SET_TOTAL_ROWS 设置成 YES。请参阅DTW_SET_TOTAL_ROWS以获取更多的信息。

例 1:显示找到的总的名字个数

%DEFINE DTW_SET_TOTAL_ROWS="YES"
 
%REPORT{
<H2>E-mail directory</H2>
<UL>
%ROW{
<LI>Name: <a href="mailto:$(V1)">$(V2)</a><BR>
Location: $(V3)
%}
</UL>
Names displayed: $(NUM_ROWS)<BR>
Names found: $(TOTAL_ROWS)
%}

V_columnName


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

当前行的指定列名的值。对于未定义的列名,不设置此变量。如果一个查询中包含两个列名,而它们的名称相同,则可能产生不可预测的结果。 考虑在您的SQL中使用一个 AS 子句来重新命名重复的列名。 V_columnName 只在 ROW 块中有效。

通过把这个变量用作一个变量引用,替换以列的实际名称,从而指定它的值。

V_columnName

表 1. V_columnName 值
说明
columnName 数据库表格的当前行中的列名。

例 1: V_columnName 用作一个变量引用

You have selected $(V_destcity).

VLIST


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

一张针对一个 ROW 块中正在处理的当前行的字段值的列表。VLIST 只在 ROW 块中有效 。缺省分隔符是一个空格。

此变量是一个预定义的变量,它的值不能修改。将此变量用作为变量引用。

例 1:使用列表标记显示查询结果

%DEFINE ALIGN="YES"
 
%REPORT{
Here are the results of your query:
<OL>
%ROW{
<LI>$(VLIST)
%}
</OL>
%}
 

例 2:使用列表变量把分隔符更改至 <P>

%DEFINE %LIST "<P>" VLIST
 
%REPORT{
Here are the results of your query:
%ROW{
<HR>$(VLIST)
%}
%}

Vn


AIX HP-UX OS/2 OS/390 OS/400 SCO SUN Win NT
X X X X X X X X

目的

针对从字段 1 到 n 的函数调用或 SQL 查询返回的每行的字 段值。Vn 只在 ROW 块中可被识别。

Net.Data 为表格中的每一字段都分配变量;在变量引用中使用此变量,来指定您想要引 用的字段号。要在块外使用此变量,则把 Vn 的值分配给一个先前定义的全局变量或一个 OUT 或 INOUT 函数参数变量。

例 1:显示一个 HTML 表格的报表

%REPORT{
<H2>E-mail directory</H2>
<TABLE BORDER=1 CELLPADDING=3>
<TR><TD>Name</TD><TD>E-mail address</TD><TD>Location</TD>
%ROW{
<TR><TD>$(V1)</TD>
<TD><a href="mailto:$(V2)">$(V2)</a></TD>
<TD>$(V3)</TD>
%}
</TABLE>
Found $(NUM_ROWS) models matching your description.
%}

第二列显示了 e-mail 地址。通过单击一个人的链接,可以给这个人发送一条消息。


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