View Full Version : Mehrere Bezugszahlen auf *off in Free RPG
Alle Wege führen nach Rom :)
Ich persönlich habe mir das Programmieren mit Schaltern nahezu abgewöhnt :)
Außer in der BIldschirmsteuerung (JA ich weiss man kann das anders lösen) benutze ich sie nicht mehr, somit hat sich auch mein MOVEA Problem gelöst.
Ein %FOUND(Datei) ist mir inzwischen lieber als ein *IN90 = *OFF (vor allem bei den spezis die erst 2 Subroutinen später abfragen ob der Chain/Read/Whatever geklappt hat ;)
FALLS man das Problem aber anders lösen will (muss) dann ist mit sicherheit die For schleife der schönste Ansatz.
Soweit meine 5 cents :)
Rince
Ich brauche die Bezugszahlen auch nur noch als Fehlerbezugszahl für Bildschirmfelder. Was meinst Du mit "kann man anders lösen" ?
Ich brauche die Bezugszahlen auch nur noch als Fehlerbezugszahl für Bildschirmfelder. Was meinst Du mit "kann man anders lösen" ?
ich denke mal es geht in diese richteung
dds
A ATR1 1A P
A ATR2 1A P
A ATR3 1A P
------------ 42 Datensätze ausgeschlossen -----------------------------
A 12 32'Druck-KZ Sammelrechnung:'
A DSPATR(&ATR1)
A RAVERKZ R B 12 57
A DSPATR(&ATR2)
A $TEXT_DR 22A O 12 59
A DSPATR(&ATR3)
im rpg fütterst du dann die felder ATR1, ATR2, ATR3 mit
werten für Farbe, geschützt, usw
d
d no_dsp c const( x'A7') Keine Anzeige
d grn_pr c const( x'A0') Feld grün/geschützt
d wht_und c const( x'26') Feld weis/Underline
d pnk c const( x'38') Pink
d
c eval atr1 = grn_pr
c eval atr2 = wht_und
c eval atr3 = pnk
gruß ronald
Nachtrag: ich glaube die Birgitta hatte da mal ein pdf "RPG ohne Bezugszahlen"
Nachtrag: ich glaube die Birgitta hatte da mal ein pdf "RPG ohne Bezugszahlen"
Das stimmt, allerdings kann man dies nur zum setzen der Farben, Underline und Protect verwenden.
Für's (freie) Positionieren (z.B. bei Fehler-Prüfung) muss man entweder weiterhin Bezugszahlen verwenden oder sich die Position über das API QDFRTVFD (Retrieve File Description) ermitteln.
Und für die Subfile-Steuerung gibt es keine andere Möglichkeit als Bezugszahlen.
Was den MOVEA angeht, würde ich das Ganze (sofern *IN-Bezugszahlen verwendet werden) wie folgt lösen:
D IndPtr S * inz(%Addr(*In))
D DS BASED(IndPtr)
* Bezugszahl 60 - 62
D IndGrp1 60 62
* Bezugszahl 70 - 79
D IndGrp2 70 79
*-----------------------------------------------------
/Free
IndGrp1 = *Zeros;
IndGrp2 = *All'1';
/End-Free
Birgitta