View Full Version : Displayfile Attribut (ND) bei Bezugszahlgesteuertem Feld
Matthias82
20-04-15, 11:55
Hallo zusammen,
wie der Titel schon verrät wollte ich einem Feld, dass bereits über eine Bezugszahl angezeigt wird oder eben auch nicht, noch zusätzlich ein nondisplay verpassen. Ziel ist es das Feld zwar füllen zu müssen, aber nicht zu sehen was man eingegeben hat.
Leider funktioniert das nur wenn ich die Bezugszahl, die für das Feld selbst hinterlegt wurde aus dem Displayfile rausnehme. Wie könnte man das noch umsetzen (ohne ein neues Format zu erstellen). Das Feld muss bezugszahlgesteuert bleiben
Danke
Gruß
ND heißt: Inhalt nicht sichtbar.
BZ vor dem Feld heißt: Feld nicht ausgegeben
Du musst also für die verdeckte Eingabe beide BZ anmachen.
Matthias82
20-04-15, 12:42
Richtig, beide BZ sind an, trotzdem wird das Feld ganz normal angezeigt, als wäre ND nicht angeschaltet.
Wofür benötigst du die 1.BZ?
Wenn du keine Überlagerungen mit diesem Feld hast, reicht dafür ggf. DSPATR(PR).
Manche Kombinationen kann die 5250 nicht.
Matthias82
20-04-15, 14:08
Die erste BZ steuert 3 weitere Felder, die zusammen angezeigt/nicht angezeigt werden sollen. D.H es ist auch möglich dass das Feld gar nicht angezeigt werden soll. Es kann aber auch sein dass es normal angezeigt wird und zusätzlich soll es möglich sein dass es als ND angezeigt wird.
Habe es jetzt vorerst mal über ein weiteres Format gelöst, danke trotzdem.-
in einem Format sollte es so gehen:
* 22: Feld eingabefähig 30:Feld lesbar anzeigen
A B100000002 14A B 12 23
A N30 DSPATR(ND)
A N22 DSPATR(PR)
A 22 DSPATR(UL)
Das sollte sich doch auch darüber lösen lassen, das man das Anzeigeattribut aus dem Programm aus steuert. Ich glaube Birgitta hatte mal vor laaaaaaaanger Zeit dazu ein Dokument:
"RPG ohne Bezugszahl" oder so ähnlich..
DDS
A ATR1 1A P TEXT('Anzeige Attribut')
A TXT01 60A B 3 1DSPATR(&ATR1)
RPG
d grn c x'20'
d wht c x'22'
d red c x'28'
d trq c x'30'
d ylw c x'32'
d pnk c x'38'
d blu c x'3A'
d grn_inv c x'21'
d wht_inv c x'23'
d red_inv c x'29'
d trq_inv c x'31'
d ylw_inv c x'33'
d pnk_inv c x'39'
d blu_inv c x'3B'
d grn_pr c x'A0'
....
atr1 = grn_pr;
Exfmt Format1;
Und das ganze sollte mit allen Azeigeoptionen gehen. Ich suche mal, ob ich auf die schnelle die HEX-Codes dafür finde
Gruß
Ronald
Leider am Thema vorbei:).
Sehe ich anders
DDS
A DSPSIZ(24 80 *DS3)
A CHGINPDFT(UL)
A CA03(03 'EoJ')
A R SCREEN
A ATR2 1A P
A 3 3'Eingabe Feld 1:'
A FLD001 6 B 3 19
A 4 3'Eingabe Feld 2:'
A FLD002 6 B 4 19DSPATR(&ATR2)
A 5 3'Eingabe Feld 3:'
A FLD003 6 B 5 19
RPG
ftest_n cf e workstn
d grn c x'20'
d grn_pr c x'A0'
d grn_nd c x'27'
d grn_nd_pr c x'A7'
DoW not *In03;
FLD002= 'Hallo';
Select;
When FLD001 = 'NIX';
atr2 = grn_nd_pr;
When FLD001 = 'GEHEIM';
atr2 = grn_nd;
Other;
atr2 = grn;
EndSl;
ExFmt Screen;
EndDo;
*InLr = *On;
Feld2 wird nun in Abhänigkeit von Feld1 angezeigt (oder auch nicht)
bei NIX ist der Inhalt nicht zu sehen und wird auch nicht mit TAB angesprungen.
bei GEHEIM kann ich was eingeben, sehe es aber nicht.
Bei allen anderen Werten in FELD 1 ist FELD 2 halt ein normales Eingabefeld
Gruß
Ronald
Kleine Liste von HEX-Codes (http://www.classanova.com/view?id=1382&p=5)
camouflage
21-04-15, 09:41
Lass mich auch noch mit tun. Das mit den fixen Attributen ist ja ganz schön, da gäbe es aber noch was...
DDS
A ATR1 1A P
A CLR1 1A P
A INPUT 1A B 10 2DSPATR(&ATR1)
A DSPATR(&CLR1)
Declares
dcl-c $white const( x'22' );
dcl-c $NonDisplay const( x'27' );
dcl-c $Protect const( x'80' );
Free RPG Statements
ATR1 = $Nondisplay; // Nicht angezeigt
ATR1 = %bitOr(ATR1:$Protect); // Nicht angezeigt/geschützt
CLR1 = $white;
So kann man sich die entsprechenden Attribute wie man will zusammenbasteln, ebenso die Farbe.