Code: Alles auswählen.
PARAMETERS: p_ausg TYPE tbmaxsel DEFAULT 100.
...
WRITE: / '|******************************************Beginn**********************************************|',
/ '|* CA1 *|',
/ '|* Es werden alle Änderung an Kreditoren-, Debitoren-Stammdaten *|',
/ '|* und Konditionen angezeigt. *|',
/ '|**********************************************************************************************|'.
SKIP.
SKIP 1.
LOOP AT i_str_usr INTO wa_str_usr.
SELECT * FROM cdhdr
INTO TABLE gt_cdhdr
WHERE username EQ wa_str_usr
AND udate GE p_von
AND udate LE p_bis.
ENDLOOP.
LOOP AT gt_cdhdr INTO gs_cdhdr.
AT FIRST.
WRITE: /
'Mdt', "Mandant
5 'Objkl', "Objektklasse
21 'Objektid', "Objektwert
112 'Changenr', "Änderungsnummer des Belegs
...
ENDAT.
IF sy-tabix > p_ausg.
WRITE: / 'Durch die Ausgabebegrenzung werden nur n-Zeilen angezeigt. Im System sind tatsächlich mehr Einträge vorhanden!'.
EXIT.
ENDIF.
WRITE: /
gs_cdhdr-mandant,
5 gs_cdhdr-objectclas,
21 gs_cdhdr-objectid,
112 gs_cdhdr-changenr,
...
ENDLOOP.
IF sy-subrc NE 0.
WRITE: / '-> No changes found!'..
ELSE.
* WRITE: / '-> End of list!'..
ENDIF.
FORMAT RESET.
PERFORM block_ende.
ENDIF.
Es wäre Sinnvoll die Daten erst garnicht zu lesen, wenn sie nicht ausgegeben werden sollen. Dies geht mit dem Zusatz UP TO n ROWs.thiemf hat geschrieben: An welcher Stelle müsste dies dann eingefügt werden?
Code: Alles auswählen.
PARAMETERS: p_ausg TYPE tbmaxsel DEFAULT 100.
* Zuerst Überschirft ausgeben:
WRITE: /
'Mdt', "Mandant
5 'Objkl', "Objektklasse
21 'Objektid', "Objektwert
112 'Changenr', "Änderungsnummer des Belegs
...
* Je User max. p_ausg Einträge lesen
* ENDLOOP bis ganz anz Ende verschoben, da sonst gt_cdhdr überschrieben würde
LOOP AT i_str_usr INTO wa_str_usr.
SELECT * FROM cdhdr
INTO TABLE gt_cdhdr
WHERE username EQ wa_str_usr
AND udate GE p_von
AND udate LE p_bis
UP TO p_ausg.
LOOP AT gt_cdhdr INTO gs_cdhdr.
* gelesene Daten ausgeben
WRITE: /
gs_cdhdr-mandant,
5 gs_cdhdr-objectclas,
21 gs_cdhdr-objectid,
112 gs_cdhdr-changenr,
...
ENDLOOP. "gt_cdhdr INTO gs_cdhdr.
* Wenn keine daten gelesen wurden
IF sy-subrc NE 0.
WRITE: / '-> No changes found! For user:' wa_str_usr.
ENDIF.
ENDLOOP. " i_str_usr INTO wa_str_usr.
Code: Alles auswählen.
SELECT * FROM cdhdr UP TO p_ausg ROWS
INTO TABLE gt_cdhdr
WHERE username = wa_str_usr
AND udate > p_von
AND udate < p_bis.