Loading...
Select Version
Der INPUT-Exit "FORINPUT" wird bei Eingaben im Formatmodus aufgerufen und reagiert auf die Eingaben wie folgt:
Benutzerkommandos werden abgesetzt:
Drücken der Taste F1: KDCOUT
Drücken der Taste F2: KDCDISP
KDCOFF: erstes Zeichen der Eingabe ist "/"; wird nur außerhalb eines Vorgangs akzeptiert.
Eine fehlende oder ungültige Eingabe wird mit einem Fehlercode in der Meldung K098 beantwortet.
Soll dem Benutzer zusätzlich die Eingabe von KDCLAST und KDCFOR erlaubt werden, muss das Programm entsprechend erweitert werden.
Dieser INPUT-Exit wird generiert mit dem Generierungstool KDCDEF in der EXIT-Anweisung mit
KDCDEF-Anweisung
EXIT PROGRAM=FORINPUT,USAGE=(INPUT,FORMMODE)
Event-Exit INPUT
IDENTIFICATION DIVISION.
PROGRAM-ID.
FORINPUT.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FUNC.
05 FUNC2.
10 COMMAND PIC X.
88 KDCOFF VALUE "/".
10 REST PIC X(7).
*
77 KDCDISP PIC 9(4) COMP VALUE 2.
*
77 KDCOUT PIC 9(4) COMP VALUE 1.
*
77 CV-END PIC X(2) VALUE "EC".
*
******************************************************************
LINKAGE SECTION.
COPY KCINPC.
*****************************************************************
PROCEDURE DIVISION USING KCINPUTC.
*****************************************************************
P1-KEY-CONTROL-SECTION.
* Check F-keys *
IF KCIFKEY = KDCOUT
THEN
MOVE "KDCOUT" TO KCINCMD
MOVE "CD" TO KCICCD
MOVE "N" TO KCICUT
MOVE SPACES TO KCIERRCD
GO TO P99-END.
IF KCIFKEY = KDCDISP
THEN
MOVE "KDCDISP" TO KCINCMD
MOVE "CD" TO KCICCD
MOVE "N" TO KCICUT
MOVE SPACES TO KCIERRCD
GO TO P99-END.
P2-CV-CONTROL.
IF KCICVST NOT = CV-END
THEN
MOVE SPACES TO KCINTAC
MOVE "CC" TO KCICCD
MOVE "N" TO KCICUT
MOVE SPACES TO KCIERRCD
GO TO P99-END
ELSE
PERFORM P10-FUNC-CONTROL
GO TO P99-END.
*****************************************************************
P10-FUNC-CONTROL.
*****************************************************************
* Check the first character of input *
MOVE KCIFCH TO FUNC2.
IF KDCOFF
THEN
MOVE "KDCOFF" TO KCINCMD
MOVE "CD" TO KCICCD
MOVE "N" TO KCICUT
MOVE SPACE TO KCIERRCD
GO TO P10-END.
IF KCICFINF NOT = "ON"
THEN
MOVE SPACE TO KCINTAC
MOVE "ER" TO KCICCD
MOVE "N" TO KCICUT
MOVE "ER01" TO KCIERRCD
GO TO P10-END.
P10-END.
EXIT.
P99-END.
EXIT PROGRAM.