Code: Alles auswählen.
DATA:
ld_object TYPE sobj_nam
ld_count TYPE i.
SELECT object COUNT(*)
INTO (ld_object,ld_count)
FROM tadir
GROUP BY object.
new-line.
write: ld_object, ld_count.
ENDSELECT.
denn benutze doch den SELECT-Zusatz "GROUP BY"...cyb1982 hat geschrieben:Ich wollte eigentlich die Datensätze gruppenweise sortiert nach ihren Eintrag in der Spalte OBJECT ausgeben lassen
Code: Alles auswählen.
SELECT pgmid object COUNT( * ) FROM tadir
INTO TABLE lt_data
WHERE obj_name LIKE 'Z%'
GROUP BY pgmid object.
Code: Alles auswählen.
DATA: ld_count TYPE I.
SORT it_tadir.
CLEAR ld_count.
LOOP AT it_tadir ASSIGNING <ls_tadir>.
AT NEW OBJECT.
IF ld_count IS NOT INITIAL.
NEW-LINE.
WRITE: 'Anzahl', ld_count.
ENDIF.
CLEAR ld_count.
ENDAT.
ADD 1 TO ld_count.
NEW-LINE.
WRITE: <ls_tadir>-PGMID LEFT-JUSTIFIED, <ls_tadir>-OBJECT LEFT-JUSTIFIED, <ls_tadir>-OBJ_NAME, <ls_tadir>-SRCSYSTEM, <ls_tadir>-AUTHOR, <ls_tadir>-DEVCLASS.
ENDLOOP.
IF ld_count IS NOT INITIAL.
NEW-LINE.
WRITE: 'Anzahl', ld_count.
ENDIF.
Code: Alles auswählen.
LOOP AT it_tadir ASSIGNING <ls_tadir>.
IF ls_tadir-PGMID NE <ls_tadir>-pgmid OR ls_tadir-OBJECT NE <ls_tadir>-OBJECT.
...
ENDIF.
ls_tadir = <ls_tadir>.
...
ENDLOOP.
a-dead-trousers hat geschrieben:Du möchtest ZUERST alle Objekte (OBJ_NAME) einer Art (OBJECT) ausgeben und im Anschluss eine Zeile mit der Anzahl der Objekte oder?
Code: Alles auswählen.
REPORT Z00_LOOPSPIEL3.
*OBJECT deswegen am Ende, da es Gruppenschlüssel ist und sonst alle Felder rechts von OBJECT zeichenartig behandelt werden und nur als **** ausgegeben werden.
DATA: BEGIN OF line,
PGMID TYPE TADIR-PGMID,
OBJ_NAME TYPE TADIR-OBJ_NAME,
SRCSYSTEM TYPE TADIR-SRCSYSTEM,
AUTHOR TYPE TADIR-AUTHOR,
DEVCLASS TYPE TADIR-DEVCLASS,
OBJECT TYPE TADIR-OBJECT,
END OF line,
itab LIKE STANDARD TABLE OF line,
temp(20) TYPE c,
count TYPE i VALUE 0.
SELECT PGMID OBJECT OBJ_NAME SRCSYSTEM AUTHOR DEVCLASS FROM TADIR
INTO CORRESPONDING FIELDS OF TABLE itab.
*Daten korrekt übertragen
*LOOP AT itab INTO line.
* WRITE:/ line-PGMID.
*ENDLOOP.
SORT itab BY OBJ_NAME.
*LOOP AT itab INTO line.
* WRITE:/ line-PGMID, line-OBJECT, line-OBJ_NAME, line-SRCSYSTEM, line-AUTHOR, line-DEVCLASS.
*ENDLOOP.
LOOP AT itab INTO line.
* CLEAR count.
AT FIRST.
WRITE:/ 'Start'.
ULINE.
WRITE:/ 'PGMID', 'Object', 'Obj_Name', 'SRCSYSTEM', 'AUTHOR', 'DEVCLASS'.
ENDAT.
AT NEW OBJECT.
WRITE:/ line-PGMID, line-OBJECT, line-OBJ_NAME, line-SRCSYSTEM, line-AUTHOR, line-DEVCLASS.
count = count + 1.
ENDAT.
* WRITE:/ 'Anzahl: ', count.
* WRITE:/ 'test: ', SY-TABIX.
ENDLOOP.
*WRITE:/ 'test: ', count.