PDA

View Full Version : darstellung num-feld



easchbac
19-02-15, 13:06
hallo die runde,

ich hätte eine frage. ich habe in einem DSPF ein 7-stelliges numerisches Feld definiert (7S0).

am Bildschirm soll das Feld nun leer sein wenn es den wert 0 hat und mit führenden nullen aufgefüllt werden wenn es z.b. nur 6-stellig ist.

BSP: wert = 0 -> darstellung am Bildschirm = ' '
wert = 123456 -> Darstellung am Bildschirm = '0123456'

ist dies mit EDTCDE, EDTWRD oder MAPVAL überhaupt möglich?

außerdem möchte ich nicht den Umweg über ein alphanumerisches Feld gehen.


danke für eure hilfe,


easchbac

Fuerchau
19-02-15, 13:21
Ohne letzteres keine Chance.

hel400
19-02-15, 16:11
Workaround (nicht schön aber funkt):
Im Pgm prüfen, ob null. Wenn ja, dann mit BZ das ganze Feld unterdrücken
(geht natürlich nur bei Nur-Anzeige-Feldern (klar..)

Fuerchau
19-02-15, 17:09
Ich habe jetzt keine Lust zum Probieren, aber probier mal ob BLANKS(nn) auch bei der Ausgabe funktioniert, nn=Bezugszahl.
MAPVAL gibt's nur bei Datum/Zeit/Zeitmarke.

DR-C
20-02-15, 08:44
alternative

Bezugszahl *ON bei *Zero und edtcde(z) ansonsten ohne edtcde

Fuerchau
20-02-15, 09:47
Wenn es ein Nur-Ausgabefeld ist, bietet sich geradezu ein Alpha-Feld an.
Im RPGLE geht's dann einfach per:
if Numfeld = *Zero;
DspFld = *blank;
else;
DspFld = %editc(Numfeld:'X');
endif;

Bei Bezugszahl benötigst du 2 Felder, da EDTCDE nicht steuerbar ist.
Da bietet sich tatsächlich eher DSPATR(ND) per BZ an.

Bei einem Eingabefeld könnte eben BLANKS funktionieren.