CICS - Aid Keys
Jak omówiliśmy we wcześniejszych modułach, klucze AID są znane jako klucze identyfikujące uwagę. CICS może wykrywać tylko klucze AID. Po wpisaniu wszystkich danych wejściowych, tylko gdy użytkownik naciśnie jeden z klawiszy AID, CICS przejmuje kontrolę. Klawisze AID obejmują ENTER, PF1 do PF24, PA1 do PA3 i CLEAR.
Sprawdzanie kluczy AID
Klawisz wciśnięty przez użytkownika jest sprawdzany za pomocą EIBAID.
EIBAID ma długość jednego bajtu i zawiera rzeczywistą wartość identyfikatora uwagi używaną w strumieniu wejściowym 3270.
CICS dostarcza nam wstępnie zakodowany zestaw zmiennych, które mogą być używane w aplikacji, pisząc następującą instrukcję -
COPY DFHAID
DFHAID
DFHAID to zeszyt, który jest używany w programach użytkowych w celu włączenia wstępnie zakodowanego zestawu zmiennych CICS. Następująca treść znajduje się w zeszycie 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 '<'.
Przykład
Poniższy przykład pokazuje, jak używać zeszytu DFHAID w programie użytkowym -
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.
Pozycjonowanie kursorem
Istnieją dwa sposoby zastąpienia pozycji określonej w definicji mapy.
Jednym ze sposobów jest określenie pozycji ekranu względem numeru wiersza i kolumny w opcji CURSOR w poleceniu wysyłania mapy.
Innym sposobem jest przesunięcie -1 do symbolicznej zmiennej mapy z przyrostkiem L. Następnie wyślij mapę z opcją CURSOR w SEND MAP.
Przykład
Poniższy przykład pokazuje, jak zastąpić pozycję kursora dla pola NAZWA -
MOVE -1 TO NAMEL
EXEC CICS SEND
MAP ('map-name')
MAPSET ('name-field')
ERASE
FREEKB
CURSOR
END-EXEC.
Dynamiczne modyfikowanie atrybutów
Wysyłając mapę, jeśli chcemy mieć inne atrybuty dla pola innego niż określone w mapie, możemy to nadpisać ustawiając to pole w programie. Poniżej znajduje się wyjaśnienie dotyczące zastępowania atrybutów pola -
Aby przesłonić atrybuty pola, musimy uwzględnić DFHATTR w programie użytkowym. Jest dostarczany przez CICS.
Wymagany atrybut można wybrać z listy i przenieść do zmiennej pola symbolicznego z przyrostkiem „A”.
DFHATTR zawiera następujące treści -
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 "'".