View Full Version : SETGT *HIVAL DATW111;
Hallo zusammen,
habe eine Tabelle die ausgewertet werden soll...
/free
SETGT *HIVAL DATW111;
READP DATW111;
.
.
.
das klappt soweit...
nun möchte ich aber den Satz auslesen mit den zweitgrößten SWert.
/free
SETGT (-1)*HIVAL DATW111;
READP DATW111;
.
.
.
Wie kann man das bewerkstelligen?
Ich hoffe mir ist zu helfen und ich bedanke mich für Eure Unterstützung.
Also so wie geplant haut das nicht hin, müsste meines Erachtens auch einen Compilerfehler geben.
*HIVAL SETGT DATW11
1 DO 2
READP DATW11
ENDDO
IOch würde so machen, einfach ind jder kanns lesen :)
Ach ja,
da war noch was.
Das alles soll in einer Abfrage passieren...
Also erst
/free
SETGT *HIVAL DATW111;
READP DATW111;
.
.
.
***und dann den zweitgrößten Satz***
SETGT(-1) *HIVAL CSTP111;
READP CSTP111;
.
.
.
EXFMT MAIN;
*inlr = *on;
if Not %EOF(CSTP111);
ENDIF;
/end-free
mhh und nun? :confused: ´
um an den zweitgroßten Satz zu kommen, muss Du nur ein Mal Positionieren und dann zwei Mal mit readP lesen, also:
/free
setGT *hival DATW111; // positionieren am Ende der Datei
readP DATW111; // lese letzten Satz
readP DATW111; // lese vorletzten Satz
/end-freeoder was meinst Du?
Genau das hatte ich gewünscht...
ist ja doch so einfach wie man es immer sagt..
Ich danke für Eure Unterstützung!!
Eine andere Frage.
Durch das Drücken der F8 Taste sollen erst die Felder XYZ angezeigt werden.
Das geht doch mit den Bezugszahlen. Im DSPF / MAIN habe ich diese CF angegeben und dem Feld XYZ ebenso. Jetzt muss ich doch noch den Schalter auf *ON setzen.. wenn ich F8 drücke.
Fragen über Fragen...
Zum Verbergen oder Anzeigen bestimmter Felder in einer Displayfile kannst du mit DSPATR(ND) arbeiten.
hier ein bißchen Codegeschnipsel:
DSPF:
A CF08(08 'Show Fields')
A R RECORD
A FLD1 10 B 11 2
A 50 DSPATR(ND)
PGM:
/free
if *in08; // F8 gedrückt
*in50 = *off; // Feld FLD1 anzeigen
else;
*in50 = *on; // Feld FLD1 verbergen
endif;
/end-free
Muß das nicht *in08 und *in50 heißen?
huch, stimmt genau ... ;)
hab´s geändert.
Das mit dem Sternchen habe ich mitbekommen...
aber wo setze ich den Code hin...
das PGM fliegt nach dem Drücken von F8 raus...
/free
SETGT *HIVAL CSTP111;
READP CSTP111;
D_ORDERSALL = F_ORDERSALL;
D_ORDERS2DAY = F_ORDERS2DAY;
.
.
.
.
READP CSTP111;
D_ORDERSALLV = F_ORDERSALL;
D_ORDERS2DAV = F_ORDERS2DAY;
.
.
.
.
EXFMT MAIN;
*inlr = *on;
// F8 Funktion
if *in08; // F8 gedrückt
*in50 = *off; // Feld MONSCHICHV anzeigen
else;
*in50 = *on; // Feld MONSCHICHV verbergen
endif;
if Not %EOF(CSTP111);
ENDIF;
/end-free
Ist dann doch nicht so leicht wie ich erst dachte.
Aber aller Anfang ist schwer.