DDS33.docx
《DDS33.docx》由会员分享,可在线阅读,更多相关《DDS33.docx(40页珍藏版)》请在冰豆网上搜索。
DDS33
3.3.78INZINP(初始输入)
用这个记录层键字初始化输出/输入字段,在PUTOVR和ERASEINP(*ALL)都有效时不用送初始化数据来显示。
这个键字没有参数。
INZINP对处理远程工作站的数据入口的应用程序特别有用。
下面是如何使用这个键字:
1.一个输出操作显示一个OVRDTA或OVRATR有效的输出/输入字段。
系统初始化输入保存区成字段的程序值。
例如,如果程序把NAME1设为Bob,则输入保存区包含名字Bob。
2.一个输入操作把数据从工作站放到输入缓冲区。
如果工作站用户没有键入输入字段并且DSPATR(MDT)键字对字段无效,则字段不能从工作站返回数据。
系统从输入保存区取得数据并把数据放入程序使用的输入缓冲区。
这样,所有输入字段在输入缓冲区中都有数据。
这些数据或是从工作站接收来的,或是从输入保存区接收来的。
3.在另一个输出操作中会产生如下情况:
如果INZINP和OVRDTA没有生效,则输入保存区不会改变,即使程序改变了字段值也是如此。
举例来说,如果程序把字段值改为名字Tom,程序保存区中的值仍然是工作站用户输入的,或是先前的程序值Bob。
如果INZINP有效,输出保存区将存有当前程序值。
当前程序值被送往字段的显示,条件是OVRDTA键字对这个字段有效。
如果OVRDTA键字对一个输出操作无效,程序必须清除规定了OVRDTA字段的输出缓冲区来保证输入保存区和显示器上的字段(在输出操作之后都是空白符)相匹配。
注:
如果ERASEINP(*ALL)键字对输出操作有效,则可输入字段从显示设备上清除,但是输入保存区没有清除。
有关输入保存区的内容,请参看图3-120和图3-121。
有DFT规定的字段如没有被选中做显示时用DFT规定的值初始化。
这些值一直被保留,除非应用程序选择这些字段来显示,才会修改这些数据值。
使用这个键字时要在记录层上定义PUTOVR、OVERLAY和ERASEINP(*ALL)。
下表给出有和没有INZINP键字时,键字ERASEINP(*ALL)和PUTOVR产生的影响。
图3-120输入/输出字段的INZINP
OVRATR或OVRDTA键字
INZINP键字
输入保存区内容
没规定
不提供
前面的内容
规定但无效
规定但无效
前面的内容
规定但无效
规定有效
程序值(不送往显示)
OVRATR规定且有效
不提供
程序值(送往显示)
OVRATR规定且有效,
OVRDTA没规定或无效
不提供
前面的值(不送往显示)
图3-121仅输入字段的INZINP
OVRATR键字
INZINP键字
输入保护区的内容
没规定
不提供
前面的内容
规定且有效
不提供
前面的内容
规定但无效
不提供
字符字段:
空格
数字字段:
零
依下列步骤把输入保存区置为空格或零以匹配在工作站上被ERASEINP(*ALL)清除的字段:
1.为INZINP,ERASEINP(*ALL),PUTOVR和OVERLAY定义相同的可选指示器。
2.为所有输出/输入字段定义OVRDTA或OVRATR。
(如果不想往设备传送数据或属性,可把这些键字的指示器关闭。
如果让OVRATR有效,也要让OVRDTA有效)。
3.为所有只输入字段规定OVRATR键字(如果不往设备传送属性,可把OVRATR键字的选择指示器关闭)。
4.在输出操作前,把所有输出/输入字段都置成空格(字符型字段)或零(数字型字段)。
如果在记录中规定了DSPMOD又规定了INZINP,则生成文件时会产生警告信息。
在运行时,当显示方式改变时,忽略INZINP。
图3-122给出如何规定INZINP键字。
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010ARFMT1
00020A77PUTOVROVERLAYERASEINP(*ALL)
00030A77INZINP
00040A78'CUSTOMERNUMBER'
00050ACUSNBR6I726
00060AN77OVRATR
00070A912'CUSTOMERNAME'
00080ANAME25B930
00090AN77OVRATR
00100A102'CUSTOMERADDRESSLINE1'
00110AADDR125B1030
00120AN77OVRATR
00130A112'CUSTOMERADDRESSLINE2'
00140AADDR225B1130
00150AN77OVRATR
00160A129'NEWCREDITLIMIT'
00170ALIMIT40I1230
00180AN77OVRATR
A
图3-122规定INZINP键字
这个例子解释如下:
1.对第一个输出操作,用户程序把指示器77关闭。
这时PUTOVR、ERASEINP和INZINP都无效。
结果是:
字段NAME、ADDR1和ADDR2都送往工作站。
输入保存区中有:
CUSNBR全为空格
NAME程序值(在显示器上显示)
ADDR1程序值(在显示器上显示)
ADDR2程序值(在显示器上显示)
LIMIT全为零
2.对第二个输出操作,用户程序打开指示器77。
结果如下:
所有接收输入字段从工作站上清除。
没有字段被送往工作站。
输入保存区中含有:
CUSNBR都是空格
NAME程序值(不显示)
ADPR1程序值(不显示)
ADPR2程序值(不显示)
LIMIT都是零
注:
如果在第二个输出操作前把NAME1、ADDR1和ADDR2都置成空格,则输入保存区中全为空格和零。
3.3.79INZRCD(初始记录)
用这个记录层键字定义如果记录还没有显示,则该记录在定义这个记录名的程序送出输入操作之前写往显示。
如果这个记录已经显示,则忽略INZRCD键字。
这个隐含的输出操作是OS/400程序初始的,它的目的仅是在执行输入操作时使显示器格式化显示。
这个键字没有参数。
这个键字不能用于输出操作。
如果没定义INZRCD键字,当程序试图读一个不在显示器上的记录时会收到一个错误信息。
在处理INZRCD键字时,存在如下特别情况:
对于仅输出字段,没有用户数据可用。
字段在显示器上以空白符出现。
任何规定的编辑方式都无效,BLKFOLD键字在显示上不起作用。
对输出/输入字段,没有用户数据可用,字段在显示器上以空白出现,输入保存区以和只输入字段一样的方式初始化(根据数据类型不同初始化成空格或零)。
常量和仅输入字段与用明显的输出操作一样的显示方式。
隐藏字段在输入操作时以空白符和零返回。
信息和系统程序字段被忽略。
因为没有输出缓冲区来作运行记录,LOGOUT键字被忽略。
因为没有已经显示的记录格式,ERRMSG和ERRMSGID被忽略。
SFLMSG和SFLMSGID也被忽略。
所有其它选择的键字和字段都作处理。
注:
为了执行INZRCD功能,在发出有此键字规定的输入操作时,用户程序必须定义一个记录格式名。
用于输入操作的记录格式必须定义INZRCD键字。
可选指示器对这个键字无效。
图3-123给出如何规定INZRCD键字。
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00274ARREC4INZRCD
A
图3-123规定INZRCD键字
3.3.80KEEP(保持)
用这个记录层键字在显示文件关闭防止显示被删除。
只要在显示中的一个记录定义了KEEP,整个显示都被保留。
文件关闭时缺省的是删除整个显示。
另外,在显示器上的第一个有KEEP属性的记录被OS/400程序保存以备随后的程序使用。
随后程序的第一个输入操作中定义的记录名不是被保持的记录名,就可以使用这个记录名。
这个键字可使在程序结束之后仍保持显示的数据,或把数据作为随后程序的输入来用。
这个键字没有参数。
这个键字不能和以下键字一起定义:
ALWROL
CLRL
SLNO
如果在定义了DSPMOD的记录上定义的KEEP,则在文件建立时会发出警告信息。
在运行时间,当显示方式改变时忽略KEEP键字。
可选指示器和应答指示器对这个键字无效。
图3-124给出如何规定KEEP键字。
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00061ARREC46KEEP
A
图3-124规定KEEP键字
3.3.81LOCK(锁)
用这个记录层键字规定在输出操作完成后键盘保持锁住。
通常键盘在输出操作之后自动解锁。
当几个连续的输出操作都包含输入字段时,使用LOCK键字。
这个键字没有参数。
如果没有定义这个键字,当几个连续的输出操作把数据送往显示时,工作站用户可往字段中键入数据。
在这种情况下光标位置可被改变,键入数据丢失。
注:
输出操作后缺省是键盘解锁。
如果在键盘锁住时发出一个输入操作,则键盘自动解锁。
这个键字与其它影响输出操作的键字互不影响。
可选指示器对这个键字无效。
图3-125给出如何规定LOCK键字。
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00011ARREC1LOCK
A
图3-125规定LOCK键字
3.3.82LOGINP(日志输入)
用这个记录层键字定义:
每次OS/400程序对此记录执行输入操作时,这个记录格式的输入缓冲都写进作业日志中。
日志的数据包括记录格式定义的输入字段值,隐藏字段值和应答指示器。
如果此记录格式是一个子文件记录格式,日志的数据也包括输出字段。
(如果为文件定义了INDARA键字,则不为应答指示器作记录)。
这个键字可用于调试或其它例外功能。
用户程序不能读这个作业日志。
这个键字没有参数。
在下列条件下,OS/400程序会忽略LOGINP:
a)在记录格式中没有输入字段、隐藏字段和应答指示器。
b)记录格式是一个信息子文件的子文件记录格式。
可选指示器对这个键字无效。
图3-126给出如何规定LOGINP键字
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00072ARREC24LOGINP
A
图3-126规定LOGINP键字
3.3.83LOGOUT(日志输出)
用这个记录层键字定义:
每次OS/400程序执行对记录的输出操作时,此记录格式的输出缓冲区都被写到作业日志中。
日志的数据包括输出字段、隐藏字段和指示器。
(如果为文件定义了INDARA,则不作可选指示器的日志)。
LOGOUT键字可用于调试和其它例外功能。
用户程序不能读这个作业日志。
这个键字没有参数。
在下面情况下OS/400程序忽略LOGOUT:
a)在记录格式没有可输出字段、隐藏字段和可选指示器。
b)记录格式是信息子文件的子文件记录格式。
可选指示器对这个键字无效。
图3-127给出了如何规定LOGOUT键字。
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00021ARREC25LOGOUT
A
图3-127规定LOGOUT键字
3.3.84LOWER(小写)
LOWER键字和CHECK(LC)是相同的。
建议使用CHECK键字。
请参见3.3.21的内容。
3.3.85MDTOFF(关闭修改数据标记)
用这个记录层键字和OVERLAY键字一起把正在显示的记录格式的输入字段修改数据标记(MDT)关闭。
这个键字的格式是:
MDTOFF[(*UNPR¦*ALL)]
当程序送一个输出操作到定义的记录格式时,修改数据标记被关闭。
要只对非保护字段关闭修改数据标记(无有效的DSPATR(PR)键字),可定义*UNPR参数(也是缺省值)。
若想对所有输入字段关闭修改数据标记,可定义参数*ALL。
程序可以选择字段DSPATR(MDT)键字,也可为字段所在的记录格式选择MDTOFF(任何参数)。
如果这样,这些字段用修改数据标记(MDT)为ON显示。
除非定义了MDTOFF(*ALL),否则ERASEINP(*ALL)将隐含MDTOFF(*UNPR)。
如果ERASEINP(*MDTON)键字是和MDTOFF(*ALL)一起定义的,最终结果和同时定义了ERASEINP(*ALL)、MDTOFF(*ALL)一样。
如果ERASEINP没定义参数,结果也同上面一样的。
可选指示器对这个键字有效。
MDTOFF对子文件记录格式无效,对定义了OVERLAY的所有其它记录格式都有效。
图3-128给出如何规定MDTOFF键字。
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
00010ARRECORD1OVERLAYMDTOFF
00020AFLD16B22
00030AFLD26B32
00040A*
00050ARRECORD2OVERLAYMDTOFF(*UNPR)
00060AFLD216B42
00070AFLD226B52
00080A*
00090ARRECORD3OVERLAYMDTOFF(*ALL)
00100AFLD316B62
00110AFLD326B72
00120AFLD336B82DSPATR(PR)
A
图3-128规定MDTOFF键字
RECORD1和RECORD2有同样的MDTOFF键字定义。
当RECORD1或RECORD2显示时,每个已经显示的输入字段的MDT被关闭,除非字段有生效的DSPATR(PR)键字。
(当FLD3显示时是这样的字段)。
当RECORD3显示时,即使DSPATR(PR)对字段生效,已经显示的输入字段的MDT也要关闭。
3.3.86MLTCHCFLD(多选择选项字段)
用这个字段层键字定义一个字段作为多选项字段。
多选项字段包含一个固定的选择数,用户可以选择多个选项。
字段以选项的横排或竖排列表出现,每个选项的左边都有一个输入字段,或在一组检测框中。
如果看到每个选项左端是一个输入字段,检测框选择字符缺省值为“/”。
信息CPX5A0C包括国家规定的选择字符。
这个值可以修改,可以是大写或小写的国家规定选择字符。
当显示文件建立时这些字符即被定义。
这个键字的格式是:
MLTCHCFLD[*RSTCSR¦*NORSTCSR]
[*NOSLTIND¦*SLTIND]
[[*NUMCOL列数¦
(*NUMROW行数)]
[(*GUTTER间隔宽度)]])]
参数是可选的。
如果没定义参数,多选项选择字段的选择项将竖行排列。
允许用户用箭头键把选择光标移出这个字段。
在选项和选择指示器之间在显示时会有三个空格。
RSTCSR参数定义是否允许用箭头键把选择光标移出选择字段。
*RSTCSR规定箭头键不能把选择光标移出字段,*NORSTCSR规定用箭头键可把光标从选择字段移出。
缺省值为*NORSTCSR。
注:
如果选择字段是包含下拉窗口的唯一字段,则会发生由*RSTCSR引起的例外限制。
在这种情况下,如果选择光标在最左或最右的列内,左箭头键和右箭头键将关闭当前下拉式窗口,并且打开新的下拉式窗口,新的窗口跟当前选项的左或右的菜单选择项有关。
*RSTCSR参数在不是与不可编程工作站的增强控制器相连的显示器上被忽略:
SLTLND参数指出选择指示器(比如检测框)是否显示。
*NOSLTIND规定不显示选择指示器。
缺省值为*SLTLND。
*NUMCOL规定选择字段用横排的多列显示,如下所示:
choice1choice2choice3
choice4choice5choice6
choice7choice8choice9
参数中的列数部分指定在选择字段中有多少列。
列数是正整数值,并且整个多选项选择字段在显示中必须能全都放进去。
*NUMROW规定选择字段用竖排的多列显示。
如下所示:
choice1choice4choice7
choice2choice5choice8
choice3choice6choice9
参数中的行数规定选择字段中包括多少行。
它是一个正整数并且整个多选项字段在显示时要能全都放进去。
GUTTER参数是可选的,它规定在多选项选择的每个列之间的空格数。
只有定义了*NUMCOL或*MUMROW时才定义GUTTER,并且后面要紧接写*NUMxxx#参数。
它必须是至少为2的正整数。
如果没定义*GUTTER,缺省为三个空格。
有MLTCHCFLD键字定义的字段必须有一个或多个CHOICE和CHCCTL键字来定义字段的选项。
有MLTCHCFLD键字的字段必须定义成一个输入字段,它的类型为Y,长度为2。
此字段的位置是显示中第一个选择项或最上面一个检测框的最上面的位置。
如果在PULLDOWN键字中使用*NOSLTIND,并且设备是连接到支持不可编程工作站的增强型控制器上,则字段的位置是第一个选择说明的第一个字符。
在输入操作中,字段包含选择的选项号码,如没有选择选项时,号码为0。
在输出操作中,字段值被忽略。
如下键字可在有MLTCHCFLD键字规定的字段上定义:
ALIASCHGINPDFT
AUTO(RA)FLDCSRPRG
CHANGEDSPATR(RIULBLCSHINDPC)(3)
CHCAVAILERRMSG
CHCUNAVAILERRMSGID
CHCSLT
(1)INDTXT
CHCCTLOVRDATA
CHECK(ER,FE)
(2)OVRATR
CHOICEPUTRETAIN
TEXT
注:
1.当定义PULLDWN(*NOSLTIND)时,只有在不显示选择指示器的下拉菜单中显示多选项选择字段时,CHCSLT才有用。
2.CHECK(FE)只能用于连到不支持增强型接口控制器上的显示器上。
3.如果为定义了MLTCHCFLD键字的字段定义COLOR或DSPATR键字,则它们只能用在基于字符显示的选择字段的输入字段中。
可选指示器对这个键字无效。
图3-129给出如何规定MLTCHCFLD键字。
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
A
ARRECORD
AF12Y0B335MLTCHCFLD
A01CHOICE(1'>Undo')
ACHOICE(2&MARKTXT)
ACHOICE(3'>Copy')
ACHCCTL(1&CTLONE1MSG1111QUSER/A)
ACHCCTL(2&CTLTWO1&MSG1&LIB/&MSGF)
ACHCCTL(3&CTLTHR1)
ACTLONE11Y0H
ACTLTWO11Y0H
ACTLTHR11Y0H
AMSGF10AP
ALIB10AP
AMARKTXT10AP
A
图3-129规定MLTCHDFLD键字
用于MLTCHCFLD的每个CHOICE键字都需要定义CHCCTL字段。
在输入中,CHCCTL键字的隐藏字段指出选项是否被选择。
0表示选项未被选中;而1则表示选项已被选中。
在输出操作中,隐藏字段控制选项的可用性,也用于为选项设置缺省值。
0表示选项可用,1表明选项用缺省值选中,2表示选项不可用。
其它值被截短。
3.3.87MNUBAR(菜单条)
用这个记录层键字定义菜单条。
一个菜单条是一些选项的水平列表,列表之后是些可选的行。
这些选项代表一组用户可选择的有关动作。
举例来说,当一个用户选择了一个菜单条后,会在下拉菜单中出现一组相关动作。
一个菜单条记录包含一个字段,字段中有一个或多个MNUBARCHC键字用以定义菜单条选项,由系统产生分隔行。
这个键字的格式是:
MNUBAR([*SEPARATOR¦*NOSEPARATOR])
参数是可选的。
用来定义是否在菜单条选项的最后一行之后放置分隔行,*SEPARATOR表示需要放置,而*NOSEPARATOR则表示不需要分隔行。
缺省值是*SEPARATOR。
注:
如果定义了*NOSEPARATOR,则不可在这个记录上定义MNUBARSEP键字。
如果一个记录规定了MNUBAR键字,则该记录必须有一个且仅能有一个菜单条字段一个或多个MNUBARCH(键字的字段),并且不能包含除菜单条之外的任何可显示字段。
以下键字允许在有MNUBAR的记录中使用:
CAnnHLPTITLEMNUCNL
CFnnHOMEOVERLAY
CLEARINDTXTPAGEDOWN/PAGEUP
CLRLINVITEPRINT
CSRLOCKEEPPROTECT
DSPMODLOCKROLLUP/ROLLDOWN
HELPMNUBARDSPTEXT
HLPCLRMNUBARSEPUNLOCK
HLPCMDKEYMNUBARSWVLDCMDKEY
HLPRTN
注:
如果菜单条是由系统显示的,则忽略以上键字(例如,MNUBARDSP是在记录中规定而是不在菜单条记录上规定时)。
可选指示器对这个键字无效。
图3-130给出了如何规定MNUBAR键字。
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
ARRECORD1MNUBAR
AMNUFLD2Y0I12
AMNUBARCHC(1RCDFILE'File')