第七章 处理字段
在报表设计中定义和编辑字段以及提供必要的信息让 RLU 能生成 DDS 源语句,要使
用设计报表显示的功能键、行命令和字段行。
可用功能键定义字段,规定字段名、长度、位置、数据类型及小数位,对字段可做下
述操作:
取消自动规定的字段层键字
把命名字段转换成常量字段
定义一个命名字段
定义一个常量字段
生成样本数据
修改字段信息
数据标记
处理字段列表
用字段行编辑字段
字段居中
字段间隔
删除字段
规定字段层键字
引用数据库文件
能从字段列表中引用数据库字段,也能使用数据库文件列表,记录格式列表及数据库
字段列表。
7.1 用功能键定义字段
在报表设计时定义了记录格式,同时要定义至少一个字段。可用功能键在设计报表显
示上一次定义一个字段。用这种方式定义字段,只在报表行、样本行和填充行是有效的,
这行必须已经有代表这个字段的说明。
要定义一个字段:
1.把光标移到要定义字段的行上。
如果光标在字符上,RLU 把从这位起到头一个两个或多个空格处,到这行中下一个
定义的当前一位,或到这行的结束,定义为字段中的所有数据。
如果光标在一空格处但光标右侧有数字说明,RLU 把从这位起到数字说明的最后一
个字符为止定义为字段中的所有数据。
如果光标在一空格处且光标右侧是非数字说明,RLU 把字段定义为一个字符。
2.用 F11 键,RLU 做:
定义新字段,给出定义字段信息的显示。在这个显示中,RLU 自动定义字段信息,
不需要修改这些值。
7.2 规定字段名
一个新字段考虑做命名字段而不是常量,RLU 自动生成 FLD001 的字段名,nnn 是以
001 起始的数字,下一个字段 nnn 增加 1。
注:一个记录格式中最大记录数为 32767。
生成的名字出现在 field 中,要规定不同的名字,在此字段中写新名。如果字段是常量 ,
则字段必须是非命名的。详细内容请看 7.8。
7.3 规定字段长度
字段的长度值由在设计报表显示中你输入的实际值确定的。这个值出现在 length of
data 中。如果字段是字母数字的,这个值是字节数,如果字段是数值的,这个值是数字的
位数。如果字段是 DBCS-图形的,这个值是双字节字符的个数。
编辑字段长度出现在定义字段信息显示顶部的 Edited length 提示中。编辑的字段长度
是数据的实际长度加上任何增加的字符,这是由于 RLU 自动规定的键字(例如 EDTCDE)
或你自己规定的键字(例如 CVTDTA)。要对字段定义不同长度,在 length of data 中写:
对字母数字字段:1-378
数字字段:1-31
DBCS-图形字段:1-189
DBCS-开放字段:4-378
引用的数据库字段:+nn 或-nn
当按执行键时,字段长度改变,出现设计报表显示,在对字段规定的长度超出页宽时,
出现一个信息请你删除这个字段。
7.4 规定字段位置
新字段的位置是由在设计报表显示中字段所在的行、列确定的。字段在 RLU 中的位置
是相对的,对一行中的第一个字段,第一个字符所在的列出现在定义字段信息显示中的
starting position 提示中,在同行上的其余字段,在这个提示中出现的是于前面字段的相对
位置(例如+15),显示中的 starting line 提示初始为空白,这是因为 RLU 用键字来定义
字段相对于其它字段的水平位置,可在此提示中规定一个起始行,然后就不能用定位键字
了。要规定不同的位置,在 starting line 和 starting position 中写新值。新起始行为 1-255 或
空白,空白指出字段的水平位置由键字确定所跳的行或字段之间的间隔。
新位置为 1-25 的数或一个增量(+nn),它规定了与这行的前一个字段的间隔,在按执
行键时会看到字段的新位置并回到设计报表显示,如果规定的新位置导致字段超出页宽,
会有信息指出要删掉这个字段。
7.5 规定字段的数据类型
新字段的数据类型是根据在设计报表显示用来表示字段的字符串确定的。如果在串中
用字符和数字的混合,数据类型依据串中的第一个字符而定,数据类型出现在定义字段信
息的 Data type 提示中。
要规定不同的数据类型,在 Data type 中写下面的类型之一:
字符:1 区位十进制:2 浮点:3 DBCS-开放数据:4
DBCS-图形数据:5
如果引用数据库字段,此提示为空白。
当按执行键时,数据类型修改了,并返回到设计报表显示中。
7.6 规定字段的小数位
数字字段的小数位是由在设计报表显示中你用来表示字段的小数点之后的数字位确定
的。它出现在定义字段信息的 number of decimal position 提示中。如果输入的是字母数字,
则这个提示为空白。要规定不同的小数位,在这个提示中写下列之一:
对数字字段规定少于或等于字段长的 1-31 数字。
在引用数据库字段时,规定一个增量+nn 或-nn。
字母数字字段为空白。
在按执行键之后,会看到小数位增加或减少,且返回到设计报表显示中。
7.7 取消自动规定的字段层键字
如果在设计报表显示上表示的字段对应某个编辑码或编辑字,则 RLU 自动对新字段使
用 EDTCDE 和 EDTWRD 键字。为了取消这些自动规定的键字来规定其它键字,在定义字
段信息的显示中用 F10 键。为避免在同一行上打印两个记录格式,自动生成 SKIPB 键字。
如果想重叠打印必须规定 SPACEB 为零,取消在处理记录键字显示或输入记录键字显示中
的键字,或者在修改对话缺省显示中规定 No spacing。对一个字段规定的键字总数出现在
定义字段信息显示顶部的 number of keyword 提示中。
7.8 把命名字段转换为常量字段
要把在定义字段信息显示中定义的命名字段转换成常量字段,然后定义这个常量字段
的信息,用 F11 键。字段转换完且出现不同的定义字段信息显示,对常量字段自动生成
DFT 键字,用在设计报表显示上输入的说明做为常量字段的值,也可用这个显示做:
用同样方式来修改字段的位置
用 F11 可再把常量字段转换成命名字段
7.9 定义命名字段
用 DF 行命令定义命名字段:
DF 定义任何说明后跟两个空格做为这行的字段
DFn 定义任何说明后跟两个空格做为从这行起 n 行的字段
DFF 定义任何说明后跟两个空格做为一对 DFF 之间所有行的字段
如果在样本行、填充行或在报表行中定义的说明后没有至少两个空格,则出现错误信
息且 RLU 不定义此字段。
7.10 定义一个常量字段
用 DC 行命令定义一个常量字段:
DC 定义任何说明后跟两个空格做为这行的常量
DCn 定义任何说明后跟两个空格做为从这行起 n 行的常量
DCC 定义任何说明后跟两个空格做为一对 DFF 之间所有行的常量
RLU 做以下操作:
定义所有至少由两个空格分开的字段为常量字段(DC)或命名字段(DF)
定义说明的长为字段长
把构成命名或常量字段的字符做为字段值。
如果在样本行、填充行或在报表行中定义的说明后没有至少两个空格,则出现错误信
息且 RLU 不定义此字段。
7.11 用键字常量定义常量字段
所有新字段都认为是命名字段的不是常量字段,大多数情况下在把常量键字提供给这
个字段之前,一定要先转换成常量字段。可在字段行输入一个常量键字来规定常量字段,
用 这 种 方 法 , 可 不 用 功 能 键 , 菜 单 或 行 命 令 来 定 义 常 量 字 段 , 但 是 仅
*DATE,*TIME,*PAGMBR 和 DATESYS 键字可用这种方法。
要规定这些键字:
1.在填充行或记录格式行的顺序号区写 DR,如下图,按执行键。
* *
* Columns . . . : 1 71 Design Report RPTLIB/RPTFILE *
* RLU==> ____________________________________________________________ REPORT *
* BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 *
* ------------------------- Start of Page 001 --------------------------- *
* DR 01 . *
* 00002 . *
* *
2.如果对话缺省设为不显示字段行,用 VF 命令生成一个字段行,如下图,按执行键。
* *
* Columns . . . : 1 71 Design Report RPTLIB/RPTFILE *
* RLU==> ____________________________________________________________ REPORT *
* BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 *
* ------------------------- Start of Page 001 --------------------------- *
* VF D001 *
* 00002 . *
* *
3.把光标移到字段行。
4.如下图,在字段行进入常量键字,按执行键。
* *
* Columns . . . : 1 71 Design Report RPTLIB/RPTFILE *
* RLU==> ____________________________________________________________ REPORT *
* BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 *
* ------------------------- Start of Page 001 --------------------------- *
* FLD1 *DATE *TIME *PAGNBR *DATESYS *
* RCD001 *
* *
生成了一个常量字段,设计报表显示如下图:
* *
* Columns . . . : 1 71 Design Report RPTLIB/RPTFILE *
* RLU==> ____________________________________________________________ REPORT *
* BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 *
* ------------------------- Start of Page 001 --------------------------- *
* FLD1 <......> <......> <..> <......> *
* RCD001 09/09/94 17:14:36 9999 09/09/94 *
* *
在字段行可规定下列常量键字:
*DATE:定义在生成或修改成员时显示日期,它与 DATE(*JOB)或 DATE 作用相
同,与它一起自动规定 EDTCDE Y 键字,因此显示日期分隔符。
*TIME:用作业时间分隔符显示当前的系统时间。
*PAGNBR:显示页号
*DATESYS:显示当前的系统日期,它等于 DDS 中的 DATE(*SYS),与它一起自
动加上 EDTCDE Y 键字,因此有日期分隔符。
7.12 生成样本数据
样本行包括表示记录中所有字段的样本数据,它出现在设计报表显示中的记录格式底
下,给出报表的真实样子。如果格式中没有任何字段,要生成样本数据,则样本行为空白
用下列命令生成样本数据:
SD 在报表行下生成一行样本数据
SDn 在报表行下生成 n 行样本数据
如果在记录格式下是填充行,要生成样本数据时,在每个样本行之间插入填充行,你
不能删掉这些填充行。
在每个样本行,用下列符号表示字段的长度及类型:
9:数字字段的每一个字符
X:字母数字字段的每一个字符
单字节 G:用 IGCDTA(*NO)规定生成文件的 DBCS-图形字段中的每个字符位
双字节 G:用 IGCDTA(*YES)规定生成文件的 DBCS-图形字段中的每个字符位
报表行的任何常量值
RLU 也在顺序号显示 S 或+号来表示每个样本行。
在定义和编辑样本数据时,要注意:
能用行命令把填充行变为样本行。
如果在报表行对字段规定编辑码或编辑字,它们影响到样本数据。
在用指示器做条件时,有关的样本数据也被条件限制,只有在字段显示或打印时,
相应的样本数据也显示或打印。要处理样本行上的行命令,样本行必须在报表行
的下面。如果行命令改变了这种状态,则样本行被删除。
如果移动或复制样本行但不带与之有关的报表行,则删除样本行,不能单独移动
或复制样本行。
修改有续行的样本行类型,必须用块命令来包括整块的行。
7.13 修改字段信息
要在设计报表显示上修改当前的字段信息:
1.把光标移到字段上,用 F23 键,出现处理字段信息的显示。
2.要修改信息,用 F10 键,出现规定字段信息的显示。
在此显示中可以修改字段的下列信息:
名字、位置、长度、数据类型、小数位
7.14 做数据标记
在显示中为复制或移动做标记的数据区可以是: