Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Beispiel für einen INPUT-Exit (BS2000-Systeme)

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.