PDA

View Full Version : Parameter rechtsbündig im Command



Jutta
16-04-04, 09:09
Ich würde gerne eine Eingabe in einem 5-stelligen Character Parameter im Command rechtsbündig setzen, statt linksbündig. Die Eingabe kann auch nur aus 2 Stellen bestehen, die allerdings dann führende Blanks haben muß.

CMD PROMPT('Adresse anlegen')
PARM KWD(KDNR1) TYPE(*CHAR) LEN(5) MIN(1) +
PROMPT('Adressnummer:')


Vielleicht geht es ja auch im CL ? Ich weiß, es gibt Handbücher, die habe ich aber schon durchsucht und nichts passendes gefunden, zumindest nicht unter dem Begriff rechtsbündig.

Ich freue mich, wenn mir jemand helfen könnte. Danke
Jutta

Fuerchau
16-04-04, 09:39
Warum definierst du den Parameter nicht als *DEC ?
Dann bekommst du immer einen festen numerischen Wert in der korrekten Ausprägung.

Ansonsten in ILERPG:

d KDNR S 5
d KDNR1 S 5

evalr KDNR = %trim(KDNR1)

Jutta
16-04-04, 09:57
Tja, das würde ich ja gerne. Aber das Feld muß führende Blanks haben.
Mit ILERPG ist mir da, glaube ich,auch nicht geholfen. Es geht ja um den CL-Command und nicht ums RPG-Programm. Ich habe mich allerdings noch nie mit ILERPG beschäftigt.

Ich dachte noch an CHGVAR, aber da gibt es wohl auch keine Möglichkeit. Einfach sowas wie "Rechtsstellung".

Schade, dann werde ich wohl ein RPG-Programm schreiben müssen.

Danke
Jutta






Warum definierst du den Parameter nicht als *DEC ?
Dann bekommst du immer einen festen numerischen Wert in der korrekten Ausprägung.

Ansonsten in ILERPG:

d KDNR S 5
d KDNR1 S 5

evalr KDNR = %trim(KDNR1)

Fuerchau
16-04-04, 11:14
Das ausführende Programm eines Commands kann natürlich auch ein RPG-Programm sein !
Besser ist hier schon die Verwendung von RPGLE. Im weitesten (ausser im Free-Format) ist alles beim alten geblieben.

Mittels CVTRPGSRC kannst du mal ein RPG in RPGLE umsetzen um zu sehen was daraus gemacht wird.

B.Hauser
16-04-04, 11:33
Hallo Jutta,

die folgende kleine RPG-Funktion richtet einen Feldwert rechtsbündig aus. Mit CALLPRC kannst Du sie dann aus Deinem CL aufrufen:


H NoMain
*************************************
D RightAdj PR 10A
D PPParm1 10A Const Options(*RIGHTADJ)
*************************************
P RightAdj B Export
D RightAdj PI 10A
D PPParm1 10A Options(*RightAdj) const
C Return PPPARM1
P RightAdj E

Pikachu
16-04-04, 11:51
Hallo Jutta !

Probier mal folgendes in deinem CL-Programm:




DCL VAR(&ADR) TYPE(*CHAR) LEN(5)

IF COND(&ADR *EQ ' ') THEN(GOTO CMDLBL(OK))
LOOP: IF COND(%SST(&ADR 5 1) *EQ ' ') THEN(DO)
CHGVAR VAR(&ADR) VALUE(' ' *CAT &ADR)
GOTO CMDLBL(LOOP)
ENDDO
OK:

Gruß
Jürgen

Jutta
19-04-04, 10:15
Vielen Dank für all die super Tipps hier. Ich werde alles ausprobieren und mich dann u.U. noch mal melden. Auch an ILERPG werde ich mich ranwagen.

Danke noch mal euch allen.

Jutta