PDA

View Full Version : Ile-RPG - Parameter-Eingabe



dino
28-08-08, 06:51
Hallo zusammen, da ich des Ile-RPG's nicht gerade sehr mächtig bin-eine Frage: Wie kann man in ein Programm an einer definierten Stelle eingreifen mit einer Prompt-Eingabe, z.B. JA/NEIN oder "1"/"2" ohne QDDS-Format ?
Ich hab da mal was z.B. von "DSPLY" für Anzeige gehört.

B.Hauser
28-08-08, 07:51
Ein Mini-Programm mit ebenso kleinem DDS, das den eingegebenen Wert zurück gibt wäre an dieser Stelle die beste Lösung. (Das Mini-Programm, für Ja/Nein oder 1/2 kann dann ja auch an anderen Stellen verwendet werden.)

Der Befehl DSPLY ist nur eine Hilfs-Krücke, mit er man sich z.B. beim Testen den Inhalt von Variablen anzeigen lassen kann. Aber über DSPLY kann man mit Sicherheit keinen Wert erfassen.

Eine andere, aber wesentlich aufwändigere Möglichkeit, wäre über Message-Handling eine Eingabe zu erzwingen (ähnlich wie bei einem Programm-Abbruch, bei dem man mit C, D u.a. bestätigen muss).

Hier das DDS für ein solches Mini-Programm:

A*%%EC
A DSPSIZ(24 80 *DS3)
A************************************************* *************************
A R CHOICER1
A*%%TS SD 20080828 084954 HAUSER REL-V5R4M0 5722-WDS
A KEEP
A WINDOW(3 15 2 12 *NOMSGLIN)
A R1SEL 2Y 0B 1 3SNGCHCFLD(*AUTOSLT *NOSLTIND)
A CHOICE(1 '>Ja')
A CHOICE(2 '>Nein')
A************************************************* *************************
A R CHOICEA ASSUME
A 2 1' '


Hier das Mini-Programm (in CL aber auch das kann aus einem ILE-RPG-Programm aufgerufen werden):
Wird Ja ausgewählt wird '1' zurückgegeben, bei Nein '2'.

PGM PARM(&ParAusw)

/* Definieren Variable */
DCL VAR(&ParAusw) TYPE(*CHAR) LEN(1)
DCLF FILE(CHOICEF2)

/* Bildschirm Verarbeitung */
SEND: SNDRCVF RCDFMT(CHOICER1)
CHGVAR VAR(&ParAusw) VALUE(&R1SEL)

END: ENDPGM

Birgitta

dino
28-08-08, 08:38
Danke, der Trick mit dem kleinen CL ist gut und universell einsetzbar.