DDS24.docx
- 文档编号:12668062
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:33
- 大小:34.95KB
DDS24.docx
《DDS24.docx》由会员分享,可在线阅读,更多相关《DDS24.docx(33页珍藏版)》请在冰豆网上搜索。
DDS24若为某字段指定了CHOICE键字,则必须同时指定SNGCHCFLD或MLTCHCFLD键字。
可为一个选择字段指定多个CHOICE键字。
可指定CHOICE键字的最大个数,取决于选择字段的位置和显示尺寸。
所有选项必须适合于为文件所指定的最小显示尺寸。
可选指示器对比键字有效。
当CHOICE键字被置为无效时,选项列表就会压缩。
图3-45给出如何指定CHOICE键字。
|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.8ARRECORDAF12Y0B12SNGCHCFLDA01CHOICE(1Undo)ACHOICE(2&MARKTXT)ACHOICE(3Copy)AMARKTXT12APA图3-45指定CHOICE键字在此例中,为单选字段F1定义了三个选项。
选项2的文本包含在字段MARKTXT中,运行时选项2的助记符必须包含在由应用程序提供的文本中。
如果在写记录时指示器01为OFF,仅显示选项2和3。
3.3.25CHRID(字符标识)如果在显示文件的CHRID参数值和工作站的CHRID参数值不同时,使用此字段层键字来指定对某一命名字段进行翻译。
它对于要显示或键入扩展字符(例如u的变音,C的变音,)时很重要。
此键字没有参数。
如果没有为某字段指定CHRID键字,而且显示文件的CHRID值也不是*JOBCCSID,则在该字段中显示数据的字符集与所用设备的字符集是一样的。
数据如何显示是不可预测的,这取决于原始代码页中的代码点是如何向设备使用的代码页映象的。
不能为常量字段、数字字段(在36至37列指定了小数位的字段),信息字段(38列为M),隐含字段(38列为H)或程序列系统字段(38列为P)指定CHRID键字。
如果显示文件的CHRID值为*JOBCCSID,则CHRID键字无效。
不能同时指定CHRID键字和DUP键字。
如果对某字段同时指定CHRID和DFT键字,则该字段的初始(缺省)值不翻译,但翻译输入该字段的数据。
虽然能用可选指示器对指定了CHRID键字的字段进行条件限定,但可选指示器对此键字无效。
图3-46给出如何指定CHRID键字。
|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.800010ARRECORD100020ATITLE40120CHRIDA图3-46指定CHRID键字字段TITLE是个命名字段。
指定了CHRID键字后,依据在“应用显示编程”一书所说明的条件,在输出和输入时都会进行字符翻译。
3.3.26CLEAR(清除)使用此文件层或记录层键字来指定用户程序在工作站用户按上Clear键时是否接收控制。
一般是OS/400程序会将有关的响应指示器置ON。
关于在系统/36环境的文件中指定CLEAR键字所需考虑的问题,参见附录F“系统/36环境考虑”内容。
此关键字的格式为:
CLEAR(响应指示器)说明按Clear键如同按命令注意键(没有从设备传递数据)。
OS/400程序并不清除显示,必须由用户程序来实现期望的功能(比如从显示器上清除字段或记录)。
如果没有指定此键字而用户按下了Clear键,OS/400程序会显示一条信息,指出这个键此时不合法。
注:
在使用类打字机键盘的显示站上,要按下CMD键,再按Shift键和FieldExit键上方的左箭头,才能激活Clear键。
在使用数据输入键盘的工作站上,按下CMD键,再按Shift键和顶行最右端的空格键,才能激活Clear键。
可选的说明在程序编译时建立的打印输出中,用来解释指示器的用法。
这个说明在文件或程序中无任何功能,仅仅是个注释。
内容要用撇号括起。
若在两撇号间的字符多于50个,则在程序打印输出时截断为50个。
可选指示器对此键字有效。
图3-47给出如何指定CLEAR键字。
|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.800101ACLEAR(10Clearkeypressed)A图3-47指定CLEAR键字3.3.27CLRL(清除行)用此记录层键字来指定OS/400程序在显示该记录前清除(删除)指定的行。
只有指定的行才被清除。
注:
同时指定OVERLAY时,其它记录仍保留在显示器上。
如何在系统/36环境使用CLRL键字,详见应用显示编程一书。
此键字的格式为:
CLRL(nn*END*NO*ALL)可用以下几种方式之一指定CLRL键字:
指定nn,nn为1到27之间的整数。
它规定要清除的行数,起始并包括显示该记录区间的第一行。
如果同时为此记录指定了SLNO(起始行数)键字,则删除起始于显示该记录格式的有效起始行数。
注:
如果指定了nn,则该记录必须至少定义了一个字段。
指定*NO表示在显示所定义的记录格式之前不清除任何行。
显示该记录时会将显示器上原有数据覆盖。
指定*ALL表示在显示所定义的记录格式之前清除显示器上所有的行。
此记录格式中必须至少定义一个字段。
如果某记录格式起始于第一列的字段,则该记录格式的起始属性字符为前一行的最后一位。
前一行号是此记录格式的起始行号。
这条规则也适用于在DDS中定义的第一行第一列字段的SLNO格式。
如果指定CLRL键字的记录格式中有一个或多个可输入字段,任何被覆盖的记录都不再被OS/400程序识别。
就是说,所有可输入字段都不能再键入数据,所有向这些记录中写入的输入操作都将导致错误,它们也能通过选择ERASE键字来清除。
如果为一个没有可输入字段的记录格式指定了CLRL(nn)键字,则被覆盖记录中的可输入段还是可输入的。
就是说,被覆盖记录中的可输入字段仍可输入,向这些记录写的输入操作还是有效的。
如果为有CLRL键字定义的记录指定ROLLUP或ROLLDOWN键字,则这两个键字被忽略。
有CLRL键字而没有可输入字段的记录在被其它有OVERLAY键字的记录覆盖时不能被完全清除。
覆盖记录所需的行被清除,而覆盖记录不需要的行仍在显示屏上。
在覆盖记录被写入显示器时,可使用CLRL(*NO)键字来防止清除被覆盖记录。
如果使用了这个键字,所有已在显示器上且将被覆盖的记录都不会被清除。
新记录完全或部分地覆盖了这些记录。
如果要显示常量和需重复地送往显示器的数据,使用CLRL(*NO)键字就会有改善性能。
把送常量作为另一个记录格式,而对包含数据的记录格式使用CLRL(*NO)键字,这样会减少向显示器发送记录所需的时间。
如果没有指定CLRL键字,也没有指定OVERLAY或PUTOVR键字,则会清除整个屏幕。
如果使用CLRL键字,同时PUTOVR或PUTRETAIN有效,则清除任何行都会和PUTOVR或PUTRETAIN相冲突。
PUTOVR或PUTRETAIN键字要求被复盖的字段还要留在显示器上,而CLRL(nn)或CLRL(*END)键字则要求首先清除这些字段。
如果某一字段因使用CLRL(nn)或CLRL(*END)键字而不能用于输入,则在PUTOVR有效时可输入字段仍为可输入的。
然而,如果程序试图读这样的记录,OS/400程序会发出信息。
如果指定了CLRL键字,还必须在建立显示文件(CRTDSPF)或修改显示文件(CHGDSPF)命令中指定RSTDSP(*YES)。
否则,如文件暂时挂起,显示器上的数据可能会丢失。
3.3.27.1防止清除被覆盖的记录CLRL键字不能和以下键字同时定义:
ASSUMESFLCTLKEEPUSRDFNSFL如果为有DSPMOD键字的记录指定CLRL键字,在文件建立时会显示一条警告信息。
运行期间,当显示方式改变时会忽略CLRL键字。
对由PASSRCD键字指定的记录格式,不能再指定CLRL键字。
可选指示器对此键字无效。
图3-48给出如何指定CLRL键字。
|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.800010ARRECORD1CLRL(5)00020AFLD153200030AFLD210OB5200040AFLD310I6200050A*00060ARRECORD2CLRL(*NO)00070AFLD1522200080AFLD25H00090AFLD310I4200100A*00110ARRECORD3CLRL(*END)00120AFLD15B5200130AFLD25I82A图3-48指定CLRL键字在显示RECORD1之前清除了第3、4、5、6和7行。
在RECORD2中,没有清除任何行,在显示此记录时,将覆盖任何已显示的信息。
显示RECORD3之前清除了第5到24行。
3.3.28CMP(比较)此键字与COMP键字是等价的。
此键字的格式为:
CMP(关系运算符值)建议使用键字COMP。
关于如何使用这两个键字,见3.3.31“COMP(比较)”的内容。
3.3.29CNTFLD(连续输入字段)使用此字段层键字定义一个连续输入字段。
连续输入字段是一组相关字段的集合,在字段数据输入和编辑时,工作站控制器把它们当作一个字段来对待。
如果显示设备不是连到支持不可编程工作站增强接口的控制器上,在编辑连续输入字段时,它的每一段都分别处理。
图3-49为使用连续输入字段建立的一个矩形文本输入字段。
进入正文.图3-49矩形连续输入字段对终端用户来说,文本输入格式比占用多个显示行的单个输入字段更有吸引力。
尽管最后一行没有占满全部列的宽度,在矩形中还是不允许再有其它字段。
连续输入字段允许在一个窗口中定义多行输入字段。
此键字的格式为:
CNTFLD(列的宽度)必须指定一个参数。
列的宽度参数指定了连续字段所占据的列数。
此值必须在显示器或窗口列的宽度之内,还必须小于字段的长度。
有CNTFLD键字的字段必须是数据类型为A的可输入字段。
此字段不能定义在子文件中。
不能与CNTFLD键字一起指定以下键字:
AUTO(RAB,RAZ)CHECK(AB,AF,RB,RZ,RLTB)CHOICEDSPATR(OIDSP)EDTMSK用CNTFLD键字定义的字段必须和其它字段至少有2个空格的间隔。
可选指示器对此键字无效。
CNTFLD键字由于用组成这个特别字段的段总数而减少了可用的输入字段的个数。
例如:
60个字符的输入字段如果有CNTFLD(10)就显示为6行,每行10个字符。
控制器把每行(或段)看作一个输入字段,这样,可输入字段数减少为6。
图3-50给出如何指定CNTFLD键字。
|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.800010ARRECORD00020AF190AB34CNTFLD(30)图3-50指定CNTFLD键字在此例中定义了多行输入字段。
此输入字段连续3行,列的宽度为30。
3.3.30COLOR(颜色)此字段层键字指定了某字段在彩色显示器(3179,3197型C1C2,377型FC,3486,3487型HC,3488(4)或5292彩色显示器)上显示时的颜色。
如果在单色显示器上为某字段选择了该键字,则该键字被忽略。
只能为COLOR键字指定一个参数值,但可为每个字段指定多个COLOR键字。
此关键字的格式为:
COLOR(GRNWHTREDTRQYLWPNKBLU)有效的参数值有:
值含义GRN绿色WHT白色RED红色TRQ蓝绿色YLW黄色PNK粉红色BLU蓝色因为绿色是彩显的缺省颜色,所以若想使某字段保持绿色,则需指定COLOR(GRN)。
若指定了DSPATR(HI),DSPATR(CS)或DSPATR(BL),但没指定COLOR(GRN)那就会改变字段的颜色。
可选指示器对此键字有效。
若为一个字段指定了多个COLOR键字,则必须为每个COLOR键字指定可选指示器。
如果对某一个输出操作有多个COLOR键字有效,OS/400程序使用在DDS中指定的第一个COLOR键字(见3.3.30.2图3-52)。
不能为同一字段多次指定同一种颜色。
在一个显示文件中可指定的COLOR键字的数目受限一个叫作屏幕属性数组的系统内部存贮区的最大尺寸。
整个显示文件的屏幕属性数组最大尺寸为32763字节。
在文件中每指定一个COLOR键字就占用这个数组中一定的存贮空间。
如果在一个文件中使用了多个COLOR键字,特别是还有条件限制,则应考虑这些键字共需多少内部存贮空间。
如果超出了32763字节,则在建立文件时会发生CPF0673信息(文件中指定了太多的COLOR或DSPATR键字)。
为确定某个COLOR键字需多少存贮空间,可使用如下算法:
(键字条件数)2+2+29=屏幕属性数组中此键字所需字节数例如,假设一个文件有8个字段,每个字段有9个COLOR键字,每个COLOR键字使用3个可选条件。
用上述算法,每个COLOR键字需要屏幕属性数组中的520个字节:
32+2+29=520字节因为每个字段有9个COLOR键字,文件中有8个字段,所以需要总的存贮空间为37440字节(5209键字8字段)。
因为37440大于32763,所以在建立文件时就会发出CPE0673信息。
COLOR键字与DSPATR键字共同使用:
在COLOR和DSPATR的某些组合使用方式中,两个键字同时有效。
这些组合方式为:
COLORDSPATR任意RI(反象)任意UL(下划线)REDBL(闪烁字段)REDBL和RIREDBL和ULREDRI和ULGRNRI和ULTRQRI和ULPNKRI和UL例如,如果COLOR(YLW)和DSPATR(RI)同时有效,则字段显示为黄背景黑字符。
在某些COLOR与DSPATR组合使用方式中,一些参数值被忽略。
这些组合方式列于下表中。
COLORDSPATR效果任意任意ND(不显式)HI(高亮)所有颜色都被忽略忽略HI任意CS(列分隔符)忽略CS(注1)GRNWHTTRQYLWPNKBLUBLBLBLBLBLBL忽略BL(注2)忽略BL(注2)忽略BL(注2)忽略BL(注2)忽略BL(注2)忽略BL(注2)REDRI、BL和UL忽略UL(注3)YLWBLUWHTRI和ULRI和ULRI和UL忽略RI忽略RI忽略RI注:
1.即使没有指定DSPATR(CS),蓝绿色和黄色也有列分隔符。
(在彩色显示器上,列分隔符显示为字符间的小蓝点。
如果显示站用户将彩色显示站置为缩减行间距方式,列分隔符就会消失)。
2.可闪烁的颜色只有红色。
3.可输入字段的下划线也消除了,而在AS/400系统中按缺省是有下划线的。
例如,如果输出操作同时选择了COLOR(YLW)和DSPATR(HI),则字段显示为黄色但没有高亮。
3.3.30.1彩色显示器的DSPATR键字如果指定了DSPATR键字但没指定COLOR键字,则字段在彩色显示器上按下表所示的颜色显示,但不按所指定的显示属性显示。
图3-51彩色显示器的DSPATR键字DSPATR(CS)DSPATR(HZ)DSPATR(BL)在彩色显示器上的颜色绿色(正常)蓝绿色
(1)白色红色,不闪烁红色,闪烁黄色
(1)粉红色蓝色注:
1.蓝绿色和黄色字段显示时有列分隔符(总为蓝色的),除非工作站用户把彩色显示站置为缩减行间距方式。
例如,如果为某字段指定了DSPATR(HI),而没有指定COLOR键字,则该字段在彩色显示器上显示为白色但并未高亮显示。
为单色显示器选择的COLOR键将被忽略。
图3-52给出为一个字段指定COLOR和DSPATR键字的情况。
|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.800010ARRECORD100020A12ColumnHeading00030ADSPATR(HI)00040A2FIELD153200050A3FIELD25I52COLOR(YLW)00060A4FIELD3572DSPATR(BL)00070A5FIELD45I9200080A42COLOR(YLW)00090A43COLOR(TRQ)00100A44COLOR(BLU)A图3-52指定COLOR和DSPATR键字1.在彩色显示器上,常量字段的列标题是白色的,在单色显示器上,则为高亮显示。
2.在所有显示器上,FIELD2都是绿色的。
3.在彩色显示器上,FIELD2是黄色的并带有蓝色的列分隔符。
在所有显示器上,该字段都带有下划线,因为这是一个可输入字段。
4.在彩色显示器上,FIELD3是红色的并且不闪烁,在单色显示器上,FIELD3是闪烁的。
5.在彩色显示器上,FIELD4可显示为下述颜色之一:
绿色,如果没有指示器为ON。
黄色,如果指示器42为ON(不管其它指示器如何设置)蓝绿色,如果指示43为ON而指示器42为OFF。
蓝色,如果只有指示器44为ON。
在单色显示器上,FIELD4是绿色的。
在所有显示器上,FIELD4都加下划线。
图3-52给出在彩色和单色显示器上将一个字段指定为可输入字段的一种方法。
|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.800010ARRECORD00020A21FIELDA5B22COLOR(TRQ)00030A44ERRMSG(Recordnotfound44)A图3-53在彩色和单色显示器上指定一个字段1.在彩色显示器上,FIELDA是蓝绿色的,并带有蓝色的列分隔符;在单色显示器上,FIELDA为绿色的。
2.如果显示FIELDA时可选指示器44为ON,则ERRMSG键字有效并发生以下情况:
在彩色显示器上,FIELDA是蓝绿色的并且是反向显示的。
(因为有COLOR键字,所以FIELDA并没有高亮显示)。
错误信息“Recordnotfound”用白色显在信息行上。
在单色显示器上,FIELDA为高亮反象显示。
错误信息“Recordnotfound”在信息行上高亮显示。
3.3.31COMP(比较)使用此字段层键字来指定OS/400程序把工作站用户键入仅输入或输出/输入字段的数据同指定的数值进行比较。
用关系运算符构成比较判别式。
如果键入的数据不符合规定的合法性检验,OS/400程序就显示一条出错信息。
注意OS/400程序只有在工作站用户修改了字段内容或者用DSPATR(MDT)把该字段的MDT置为ON时才进行检验。
注:
关于定义用户指定的出错信息,详见CHKMSGID键字说明。
这个键字的格式为:
COMP(关系运算符值)每个COMP键字只能指定一种操作,每个字段只能指定一个COMP键字。
所用的关系运算符有:
关系运算符含义EQ等于NE不等于LT小于NL不小于GT大于NG不大于LE小于或等于GE大于或等于根据数据类型不同(小数位),所用的比较值是数值或者是字符。
数值由数字0到9和符号(+或-)表示。
字符值必须在一对撇号中。
注:
如果所定义的字段是数值的,则根据36和37列所指定的小数位进行对准,前导及结尾的空格都用0填充。
如果没有输入小数点,则假定小数点在最后一位右侧。
例如,一个长度为5(由34列指定),小数位为2(由37列指定)的数值字段,1.2被解释为001.20,100被解释为100.00。
不能为浮点字段(35列为F)指定COMP键字。
可选指示器对此键字无效。
图3-54给出如何指定COMP键字。
|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.800010AFIELD26OI1010COMP(EQ+021920)00020AFIELD13I1111COMP(EQABC)A图3-54指定COMP键字3.3.32CSRINPONLY(光标移至仅输入位置)在文件或记录层上使用此键字来限制光标只能向可输入字段位置移动。
此键字只对使用箭头键移动的光标有效。
此键字没有参数。
在定义帮助用此键字时要小心。
用户可能无法将光标定位于帮助有效区内。
关于CSRINPONLY键字,详见应用显示程序设计一书。
可选指示符对此键字是合法的。
图3-55给出如何指定CSRINPONLY键字|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.8ACSRINPONLYARRECORD1A110ONE-:
AFIELD110AI120TEXT(ONE)A210TWO-:
AFIELD210AI220TEXT(TWO)A310THREE-:
AFIELD310AI320TEXT(THREE)A410FOUR-:
AFIELD410AI420TEXT(FOUR)A510OUT-:
AFIELD510AO520TEXT(OUT)A图3-55指定CSRINPONLY键字图3-55中RECORD1定义为输入、输出和常量字段。
因为指定了CSRINPONLY键字,用户只能把光标定位在FIELD1、FIELD2、FIELD3或FIELD4上。
光标无法进入FIELD5或其它显示区。
3.3.33CSRLOC(光标定位)使用此记录层键字来指定对所定义的记录格式进行输出操作时给光标定位。
用户程序在光标定位后做输出操作。
此键字的格式为:
CSRLOC(字段名1字段名2)键字中的参数值指定了两个字段名,其内容分别为光标位置的行号(字段名1)和列号(字段名2)。
字段名1和字段名2都是三字节的,区位十进制的隐藏字段,用户程序用这些字段来告诉OS/400程序在何处定位光标。
如果输出操作锁住了键盘,则光标不会定位在预期的位置上。
只有用户程序发出一个输入或输出操作来解锁键盘,光标才会移到预期的位置上。
如果用户程序把光标定位字段的值设在显示设备合法值范围之外,则该键字会被忽略。
对任意一个输出操作,CSRLOC键字会覆盖其它任何光标定位规定,比如DSPATR(PC)和SFLRCDNBR(CURSOR)。
除非用户程序在DSPATR(PC)、CSRLOC或SFLRCDNBR(CURSOR)有效时发出另一个输出操作,或者有此键字的记录被覆盖(OVERLAY键字)或删除(ERASE键字),否则此键字将保持有效。
在输入操作中,光标位置是由I/O反馈区内容或RTNCSRLOC键字的相应参数确定的。
详细信息请看应用显示程序设计一书的内容。
每个记录格式只能指定一个CSRLOC键字。
CSRLOC键字对以下记录格式是不合法的:
子文件记录格式(由SFL键字标识)用户定义记录格式(由USRDFN键字标识)可选指示器对此键字有效。
显示尺寸条件名是不合法的。
图3-56给出如何指定CSRLOC键字。
|.+.1.+.2.+.3.+.4.+.5.+.6.+.7.+.800010ARRECORD1CSRLOC(LINNBRPOSNBR)00020ATITLE4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DDS24
![提示](https://static.bdocx.com/images/bang_tan.gif)