这些变量可以帮助您定制报表。您必须在引用之前定义这些变量:
AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X |
目的
控制和表格处理变量 NLIST 和 VLIST 一起使用的前导和尾随空格。 如果设置成 YES, ALIGN 填补空白,以对齐要显示的表格处理变量。如果想要在 HTML 链路或表格操作中嵌入查询结果 ,则使用缺省值 NO,阻止 Net.Data 在报表变量周围加前导或尾随空格。
使用 DEFINE 语句或 @DTW_ASSIGN() 函数指定这个变量的值。
值
ALIGN="YES"|"NO"
值 | 说明 |
---|---|
YES | Net.Data 给报表变量添加前导和尾随空格,以对齐显示。 |
NO | Net.Data 不添加前导或者尾随空格。NO 是缺省。 |
例
例 1:使用 ALIGN 变量用空格分隔每一列
%DEFINE ALIGN="YES" <P>Your query was on these columns: $(NLIST)
AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X |
目的
确定 Net.Data 是否为没有 REPORT 块的函数生成缺省报表。如果此变量设置为 YES, 则 Net.Data 生成缺省的报表。如果设置为 NO,则 Net.Data 关闭缺省的报表生成操作。 例如,如果把函数调用的结果接收到一个表格变量中,并且想把结果传送给另一个函数来处理,则关闭缺省报表是有用的。
使用 DEFINE 语句或 @DTW_ASSIGN() 函数指定这个变量的值。
值
DTW_DEFAULT_REPORT="YES"|"NO"
值 | 说明 |
---|---|
YES | Net.Data 为没有 REPORT 块的函数生成缺省报表,并把结果显 示在浏览器中。YES 是缺省。 |
NO | Net.Data 对没有 REPORT 块的函数舍弃生成缺省报表。 |
例
例 1:覆盖由 Net.Data 生成的缺省报表
%DEFINE DTW_DEFAULT_REPORT="NO"
AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X |
目的
把结果以 HTML 表格形式显示,而不把表格作为文本类型来显示(即, 使用 TABLE 标签,而不使用 PRE 标签)。
生成的 TABLE 标记中包括了边界和单元填充说明:
<TABLE BORDER CELLPADDING=2>
使用 DEFINE 语句或 @DTW_ASSIGN() 函数指定这个变量的值。
值
DTW_HTML_TABLE="YES"|"NO"
值 | 说明 |
---|---|
YES | 使用 HTML 表格标记显示表格数据。 |
NO | 使用 PRE 标记,以文本格式显示表格数据。NO 是缺省。 |
例
例 1:用 HTML 标记显示来自一个 SQL 函数的结果
%DEFINE DTW_HTML_TABLE="YES" %FUNCTION(DTW_SQL){ SELECT NAME, ADDRESS FROM $(qTable) %}
AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X |
目的
指定行数,它们显示在由函数 REPORT 块生成的表格中。
使用 DEFINE 语句或 @DTW_ASSIGN() 函数指定此变量的值。
OS/400、Windows NT、OS/2 和 UNIX 用户: 要使用此变量,请确保在初始化文件包含此变量,作为此数据库语言环境下 ENVIRONMENT 语句中的一个 IN 变量。参阅Net.Data 管理与程序设计指南的配置一章,进一步学习数据库语言环境语句。
值
RPT_MAX_ROWS="ALL"|"0"|"number"
值 | 说明 |
---|---|
ALL | 表示对由函数调用生成的表格中显示的行数没有限制。将显示所 有行。 |
0 | 指定表格中的所有行都将显示出来。这个值和指定 ALL 是相同 的。 |
number | 一个正整数,表示在由函数调用生成的表格中显示的最大行数。
如果 FUNCTION 块包含一个 REPORT 和 ROW 块,则这个数字指定了执行 ROW 块的次数。 |
例
例 1:在 DEFINE 语句中定义 RPT_MAX_ROWS
%DEFINE RPT_MAX_ROWS="20"
上述方法显示任何函数返回的行数为 20 行。
例 2:使用 HTML 输入定义 HTML 格式的变量
Maximum rows to return (0 for no limit): <INPUT TYPE="text" NAME="RPT_MAX_ROWS" SIZE=3>
上例中各行可以放在一个 FORM 标记中 ,以使应用程序用户设置他们希望查询返回的行数。
AIX | HP-UX | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X |
| X | X | X | X |
目的
指定在报表中开始显示一张 Net.Data 表格的结果的行号。将这个变量与 RPT_MAX_ROWS 一起使用,可以将具有庞大结果集合的查询分成几个小表格,然后使用“下一页”按钮来游历 生成的表格。
限制:针对性能原因,Net.Data 把 START_ROW_NUM 传送给数 据库语言环境,使得语言环境不向 Net.Data 返回整个结果集合。要自动传送此变量,则把它作为一 个 IN 变量包含在初始化文件的数据库语言环境 ENVIRONMENT 语句中。如果 ENVIRONMENT 语句中省 略了这个变量,则要检索的起始行号假定为结果集合中的第一行。
使用 DEFINE 语句或 @DTW_ASSIGN() 函数指定这个变量的值。
值
START_ROW_NUM="number"
值 | 说明 |
---|---|
number | 一个正整数,表示开始显示一张报表的行号。
如果初始化文 件的数据库语言环境的环境语句中指定 START_ROW_NUM ,则此数字指定了数据库语言环境所处理的结果集合 的行号。 如果 START_ROW_NUM 没有传送给语言环境,则这个数字指定用于显示一张报表的 Net.Data 表格的行号。 |
例 1:用 HTML 格式“下一页”和“前一页”按钮滚动
%define { DTW_HTML_TABLE = "YES" START_ROW_NUM = "1" RPT_MAX_ROWS = "10" totalSize = "" includeNext = "YES" includePrev = "YES" includeLast = "YES" includeFirst = "YES" %} %function(DTW_SQL) myQuery(){ select * from NETDATADEV.CUSTOMER %} %function(DTW_SQL) count(OUT size){ select count(*) from NETDATADEV.CUSTOMER %report{ %row{ @DTW_ASSIGN(size,V1) %} %} %} %html(report) { %{ get the total number of records if we haven't already %} %if (totalSize == "") @count(totalSize) %endif %{ set START_ROW_NUM based on the button user clicked %} %if (totalSize <= RPT_MAX_ROWS) %{ there's only one page of data %} @DTW_ASSIGN(START_ROW_NUM, "1") @DTW_ASSIGN(includeFirst, "NO") @DTW_ASSIGN(includeLast, "NO") @DTW_ASSIGN(includeNext, "NO") @DTW_ASSIGN(includePrev, "NO") %elif (submit == "First Page" || submit == "") %{ first time through or user selected "First Page" button %} @DTW_ASSIGN(START_ROW_NUM, "1") @DTW_ASSIGN(includePrev, "NO") @DTW_ASSIGN(includeFirst, "NO") %elif (submit == "Last Page") %{ user selected "Last Page" button %} @DTW_SUBTRACT(totalSize, RPT_MAX_ROWS, START_ROW_NUM) @DTW_ADD(START_ROW_NUM, "1", START_ROW_NUM) @DTW_ASSIGN(includeLast, "NO") @DTW_ASSIGN(includeNext, "NO") %elif (submit == "Next") %{ user selected "Next" button %} @DTW_ADD(START_ROW_NUM, RPT_MAX_ROWS, START_ROW_NUM) %if (@DTW_rADD(START_ROW_NUM, RPT_MAX_ROWS) > totalSize) @DTW_ASSIGN(includeNext,"NO") @DTW_ASSIGN(includeLast, "NO") %endif %elif (submit == "Previous") %{ user selected "Previous" button %} @DTW_SUBTRACT(START_ROW_NUM, RPT_MAX_ROWS, START_ROW_NUM) %if (START_ROW_NUM <= "1" ) @DTW_ASSIGN(START_ROW_NUM,"1") @DTW_ASSIGN(includePrev,"NO") @DTW_ASSIGN(includeFirst,"NO") %endif %endif %{ run the query to get the data %} @myQuery() %{ output the correct buttons at the bottom of the report %} <center> <form method="POST" action="report"> <input name="START_ROW_NUM" type="hidden" value="$(START_ROW_NUM)"> <input name="totalSize" type="hidden" value="$(totalSize)"> %if (includeFirst == "YES" ) <input name="submit" type="submit" value="First Page"> %endif %if (includePrev == "YES" ) <input name="submit" type="submit" value="Previous"> %endif %if (includeNext == "YES" ) <input name="submit" type="submit" value="Next"> %endif %if (includeLast == "YES" ) <input name="submit" type="submit" value="Last Page"> %endif </form> </center> %}