CICS - 辅助键
正如我们在之前的模块中讨论过的,AID 键被称为注意标识符键。CICS 只能检测 AID 键。输入完所有输入后,只有当用户按下其中一个 AID 键时,CICS 才会接管控制。 AID 键包括 ENTER、PF1 到 PF24、PA1 到 PA3 和 CLEAR。
验证 AID 键
使用 EIBAID 检查用户按下的键。
EIBAID 长度为一个字节,保存 3270 输入流中使用的实际注意标识符值。
CICS 为我们提供了一组预编码的变量,可通过编写以下语句 − 在应用程序中使用这些变量。
COPY DFHAID
DFHAID
DFHAID 是一个副本,用于应用程序中以包含 CICS 预编码的变量集。DFHAID 副本中包含以下内容 −
01 DFHAID. 02 DFHNULL PIC X VALUE IS ' '. 02 DFHENTER PIC X VALUE IS ''''. 02 DFHCLEAR PIC X VALUE IS '_'. 02 DFHCLRP PIC X VALUE IS '¦'. 02 DFHPEN PIC X VALUE IS '='. 02 DFHOPID PIC X VALUE IS 'W'. 02 DFHMSRE PIC X VALUE IS 'X'. 02 DFHSTRF PIC X VALUE IS 'h'. 02 DFHTRIG PIC X VALUE IS '"'. 02 DFHPA1 PIC X VALUE IS '%'. 02 DFHPA2 PIC X VALUE IS '>'. 02 DFHPA3 PIC X VALUE IS ','. 02 DFHPF1 PIC X VALUE IS '1'. 02 DFHPF2 PIC X VALUE IS '2'. 02 DFHPF3 PIC X VALUE IS '3'. 02 DFHPF4 PIC X VALUE IS '4'. 02 DFHPF5 PIC X VALUE IS '5'. 02 DFHPF6 PIC X VALUE IS '6'. 02 DFHPF7 PIC X VALUE IS '7'. 02 DFHPF8 PIC X VALUE IS '8'. 02 DFHPF9 PIC X VALUE IS '9'. 02 DFHPF10 PIC X VALUE IS ':'. 02 DFHPF11 PIC X VALUE IS '#'. 02 DFHPF12 PIC X VALUE IS '@'. 02 DFHPF13 PIC X VALUE IS 'A'. 02 DFHPF14 PIC X VALUE IS 'B'. 02 DFHPF15 PIC X VALUE IS 'C'. 02 DFHPF16 PIC X VALUE IS 'D'. 02 DFHPF17 PIC X VALUE IS 'E'. 02 DFHPF18 PIC X VALUE IS 'F'. 02 DFHPF19 PIC X VALUE IS 'G'. 02 DFHPF20 PIC X VALUE IS 'H'. 02 DFHPF21 PIC X VALUE IS 'I'. 02 DFHPF22 PIC X VALUE IS '¢'. 02 DFHPF23 PIC X VALUE IS '.'. 02 DFHPF24 PIC X VALUE IS '<'.
示例
以下示例展示了如何在应用程序中使用 DFHAID copybook −
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. COPY DFHAID. PROCEDURE DIVISION. A000-AIDKEY-PARA. EVALUATE EIBAID WHEN DFHAID PERFORM A000-PROCES-PARA WHEN DFHPF1 PERFORM A001-HELP-PARA WHEN DFHPF3 PERFORM A001-EXIT-PARA END-EVALUATE.
光标定位
有两种方法可以覆盖映射定义中指定的位置。
一种方法是在发送映射命令的 CURSOR 选项中指定相对于行号和列号的屏幕位置。
另一种方法是将 -1 移动到以 L 为后缀的符号映射变量。然后,在 SEND MAP 中使用 CURSOR 选项发送映射。
示例
以下示例显示如何覆盖 NAME 字段的光标位置 −
MOVE -1 TO NAMEL EXEC CICS SEND MAP ('map-name') MAPSET ('name-field') ERASE FREEKB CURSOR END-EXEC.
动态修改属性
在发送映射时,如果我们想为字段设置与映射中指定的不同的属性,那么我们可以通过在程序中设置该字段来覆盖该属性。以下是覆盖字段属性的说明 −
要覆盖字段的属性,我们必须在应用程序中包括 DFHATTR。它由 CICS 提供。
可以从列表中选择所需的属性,并将其移动到以"A"为后缀的符号字段变量中。
DFHATTR 包含以下内容 −
01 CICS-ATTRIBUTES. 05 ATTR-UXN PIC X(01) VALUE SPACE. 05 ATTR-UXMN PIC X(01) VALUE 'A'. 05 ATTR-UXNL PIC X(01) VALUE 'D'. 05 ATTR-UXMNL PIC X(01) VALUE 'E'. 05 ATTR-UXBL PIC X(01) VALUE 'H'. 05 ATTR-UXMBL PIC X(01) VALUE 'I'. 05 ATTR-UXD PIC X(01) VALUE '<'. 05 ATTR-UXMD PIC X(01) VALUE '('. 05 ATTR-U9N PIC X(01) VALUE '&'. 05 ATTR-U9MN PIC X(01) VALUE 'J'. 05 ATTR-U9NL PIC X(01) VALUE 'M'. 05 ATTR-U9MNL PIC X(01) VALUE 'N'. 05 ATTR-U9BL PIC X(01) VALUE 'Q'. 05 ATTR-U9MBL PIC X(01) VALUE 'R'. 05 ATTR-U9D PIC X(01) VALUE '*'. 05 ATTR-U9MD PIC X(01) VALUE ')'. 05 ATTR-PXN PIC X(01) VALUE '-'. 05 ATTR-PXMN PIC X(01) VALUE '/'. 05 ATTR-PXNL PIC X(01) VALUE 'U'. 05 ATTR-PXMNL PIC X(01) VALUE 'V'. 05 ATTR-PXBL PIC X(01) VALUE 'Y'. 05 ATTR-PXMBL PIC X(01) VALUE 'Z'. 05 ATTR-PXD PIC X(01) VALUE '%'. 05 ATTR-PSN PIC X(01) VALUE '0'. 05 ATTR-PSMN PIC X(01) VALUE '1'. 05 ATTR-PSNL PIC X(01) VALUE '4'. 05 ATTR-PSMNL PIC X(01) VALUE '5'. 05 ATTR-PSBL PIC X(01) VALUE '8'. 05 ATTR-PSMBL PIC X(01) VALUE '9'. 05 ATTR-PSD PIC X(01) VALUE '@'. 05 ATTR-PSMD PIC X(01) VALUE "'".