DFSORT 的 ICETOOL DISPLAY 运算符有许多选项,这意味着它有大量的文档。
您应该查阅DFSORT 入门手册以了解入门级使用情况,并查阅 DFSORT 应用程序编程指南了解更多高级使用情况。
在 BCOUNT 中,所有数字字段都将显示总计。您的帐户是数字(二进制),但如果您不能将其设为非数字,您可以使用NOST
(您可以假装这意味着没有小计)作为您不想自动汇总的任何字段的格式的一部分.
要使您的 BTOTAL 文本与总计显示在同一行,请STATLEFT
在报告说明中使用。
这是应用程序编程指南中使用两者的示例:
DISPLAY FROM(ACCTS) LIST(FANCY) -
TITLE('Accounts Report for First Quarter') -
DATE(MD4/) BLANK -
HEADER('Amount') ON(12,6,ZD,C1,N08) -
HEADER(Id') ON(NUM,N02) -
HEADER('Acct#') ON(31,3,PD,NOST,LZ) -
HEADER('Date') ON(1,4,ZD,E'99/99',NOST) -
INDENT(2) BETWEEN(5) -
STATLEFT -
TOTAL('Total for Q1') -
AVERAGE('Average for Q1')
有相同报告的普通版本的编码:
DISPLAY FROM(ACCTS) LIST(PLAIN) -
TITLE('Accounts Report for First Quarter') -
DATE(MD4/) BLANK -
HEADER('Amount') ON(12,6,ZD) -
HEADER(Id') ON(NUM) -
HEADER('Acct#') ON(31,3,PD) -
HEADER('Date') ON(1,4,ZD) -
TOTAL('Total for Q1') -
AVERAGE('Average for Q1')
输出,以及示例中的解释,是:
此示例显示了一些可用于改进 DISPLAY 报告外观的选项。第一个 DISPLAY 运算符生成“普通”报告,第二个 DISPLAY 运算符使用粗体显示的选项生成“精美”报告。
The PLAIN output starts on a new page and looks as follows:
Accounts Report for First Quarter 05/04/2001
Amount Id Acct# Date
--------------- --------------- ------------------- --------------------
93271 1 15932 106
137622 2 187 128
83147 3 15932 212
183261 4 2158 217
76389 5 187 305
920013 6 15932 319
Total for Q1
1493703 50328 1287
Average for Q1
248950 8388 214
The FANCY output starts on a new page and looks as follows:
Accounts Report for First Quarter 05/04/2001
Amount Id Acct# Date
-------- --- ------ -----
932.71 1 15932 01/06
1,376.22 2 00187 01/28
831.47 3 15932 02/12
1,832.61 4 02158 02/17
763.89 5 00187 03/05
9,200.13 6 15932 03/19
Total for Q1 14,937.03
Average for Q1 2,489.50
以下是用于“花式”报告的额外选项的说明:
First ON field: In the PLAIN report, BLANK causes ICETOOL to print
6 字节 ZD 值作为未编辑的数字,前导零被抑制。但是对于这个例子,我们知道数字真的代表美元和美分。因此,在 FANCY 报告中,我们使用 C1 格式化项(三十三个可用掩码之一)打印值,其中逗号 (,) 作为千位分隔符,句点 (.) 作为小数点。
In the PLAIN report, TOTAL causes ICETOOL to allow 15 digits for the
值,因为它不知道需要多少位数。但是对于这个例子,我们知道总金额不会超过 8 位数。所以在 FANCY 报表中,我们使用 N08 格式项将位数设置为 8。这会减小字段的列宽。
Second ON field: In the PLAIN report, NUM causes ICETOOL to allow 15
记录号的位数,因为它不知道需要多少位数。但是对于这个例子,我们知道记录数不会超过 99。所以在 FANCY 报表中,我们使用 N02 格式化项将位数设置为 2。这会减小记录数的列宽。
Third ON field: In the PLAIN report, TOTAL and AVERAGE cause ICETOOL to
打印这个 3 字节 PD 字段的总数和平均值。但是对于这个示例,我们知道我们不需要该字段的统计信息,因为它是一个帐号。所以在 FANCY 报告中,我们使用 NOST 格式化项来抑制该字段的统计信息。
In the PLAIN report, the default mask of A0 causes ICETOOL to suppress
此 3 字节 PD 字段的前导零。但是对于这个例子,我们知道我们想要在字段中显示前导零,因为它是一个帐号。所以在 FANCY 报表中,我们使用 LZ 格式化项来打印该字段的前导零。
Fourth ON field: In the PLAIN report, BLANK causes ICETOOL to print the
4 字节 ZD 值作为未编辑的数字,前导零被抑制。但是对于这个例子,我们知道数字代表一个日期(月和日)。因此,在 FANCY 报告中,我们使用 E'99/99' 格式项来打印在月份和日期之间带有前导零和斜线 (⁄) 的值。
In the PLAIN report, TOTAL and AVERAGE cause ICETOOL to print the total
和这个 4 字节 ZD 字段的平均值。但是对于这个例子,我们知道我们不想要这个字段的总数或平均值,因为它是一个日期。所以在 FANCY 报告中,我们使用 NOST 格式化项来抑制该字段的统计信息。
Note: In some applications, we might want the minimum and maximum for a
使用 E'pattern' 显示的日期,因此我们不会为日期字段指定 NOST。
INDENT: In the PLAIN report, ICETOOL starts the report in column 2
(在控制字符之后),默认情况下。但是对于这个例子,我们想要缩进报告一点。因此,在 FANCY 报表中,我们使用 INDENT(2) 操作数将报表缩进 2 个空格,使其从第 4 列开始。
BETWEEN: In the PLAIN report, ICETOOL uses 3 blanks between the columns
数据,默认情况下。但是对于这个例子,我们希望列之间有更多的空间。所以在 FANCY 报表中,我们使用 BETWEEN(5) 操作数在列之间插入 5 个空格。
STATLEFT: In the PLAIN report, ICETOOL prints the strings for TOTAL
和 AVERAGE 在第一列数据下,默认情况下,每个统计数据使用两行以避免字符串覆盖值。但是对于本示例,我们希望 TOTAL 和 AVERAGE 字符串在报告中突出显示,并且每个字符串与其值位于同一行。因此,在 FANCY 报告中,我们使用 STATLEFT 操作数将 TOTAL 和 AVERAGE 字符串打印到第一列数据的左侧。
这是链接,其中还包括报告的“普通”版本以与花哨的版本进行对比:http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1。 icea100/ice2ca_Example_1110.htm
我通过搜索引擎找到了链接icetool display statleft nost
。