Code: Alles auswählen.
**&---------------------------------------------------------------------*
**& Report Z_ZZ1_KONTROLLE
**&
**&---------------------------------------------------------------------*
**&
**&
**&---------------------------------------------------------------------*
*
REPORT z_zz1_kontrolle.
**&---------------------------------------------------------------------*
* Sämtliche relevanten Felder aus der Tabelle DRAW lesen
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_draw,
dokar LIKE draw-dokar,
doktl LIKE draw-doktl,
dokst LIKE draw-dokst,
loedk LIKE draw-loedk,
END OF t_draw.
DATA: gt_draw TYPE SORTED TABLE OF t_draw
WITH UNIQUE KEY dokar doktl dokst loedk,
wa_draw LIKE LINE OF gt_draw.
"eventuell eine Checkbox einbauen mit den Einschränkungen auf ZZ1 usw.
**&---------------------------------------------------------------------*
* Selektieren auf die relevanten abfragen
**&---------------------------------------------------------------------*
SELECT draw~dokar draw~doktl draw~dokst draw~loedk
FROM draw
APPENDING TABLE gt_draw.
LOOP AT gt_draw INTO wa_draw." WHERE dokar = 'zz1' AND doktl = '001'.
IF wa_draw-dokar = 'zz1'.
WRITE: / wa_draw-doktl.
ENDIF.
ENDLOOP.
ULINE.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
commolus
Code: Alles auswählen.
IF pa_dokar IS INITIAL.
SELECT draw~dokar draw~doknr draw~dokvr draw~doktl draw~dokst draw~loedk
FROM draw
INTO TABLE gt_draw
WHERE draw~dokar = pa_dokar.
else.
if pa_dokvr is initial.
SELECT draw~dokar draw~doknr draw~dokvr draw~doktl draw~dokst draw~loedk
FROM draw
INTO TABLE gt_draw
WHERE draw~dokvr = pa_dokvr.
ENDIF.
Code: Alles auswählen.
IF pa_doknr IS NOT INITAL.
CONCATENATE `AND pa_doknr EQ '` pa_doknr `'` INTO la_where.
ENDIF.
...
SELECT *
FROM DRAW
INTO gt_draw
WHERE (la_where).
Code: Alles auswählen.
**&---------------------------------------------------------------------*
**& Report Z_ZZ1_KONTROLLE
**&
**&---------------------------------------------------------------------*
**& Es fehlt noch: 1. eine Zählung, 2. eine Ausgabe wenn verglichen wird, 3. und eine Ausgebe was gelöscht wurde
**&
**&---------------------------------------------------------------------*
*
REPORT z_zz1_kontrolle.
**&---------------------------------------------------------------------*
* Sämtliche relevanten Felder aus der Tabelle DRAW lesen
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_draw,
dokar LIKE draw-dokar,
doknr LIKE draw-doknr,
dokvr LIKE draw-dokvr,
doktl LIKE draw-doktl,
dokst LIKE draw-dokst,
loedk LIKE draw-loedk,
filep LIKE draw-filep1, "BW 29.05.2012 +
END OF t_draw.
DATA: gt_draw TYPE SORTED TABLE OF t_draw
WITH UNIQUE KEY dokar doknr dokvr doktl dokst loedk ,
wa_draw LIKE LINE OF gt_draw.
**&---------------------------------------------------------------------*
* sämtliche Felder der Tabelle DMS_DOC2LOIO
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_doc2loio,
dokar LIKE dms_doc2loio-dokar,
doknr LIKE dms_doc2loio-doknr,
dokvr LIKE dms_doc2loio-dokvr,
doktl LIKE dms_doc2loio-doktl,
lo_index like dms_doc2loio-lo_index,
lo_type LIKE dms_doc2loio-lo_type,
lo_objid LIKE dms_doc2loio-lo_objid,
END OF t_doc2loio.
DATA: gt_doc2loio TYPE SORTED TABLE OF t_doc2loio
WITH UNIQUE KEY lo_objid,"dokar doknr dokvr doktl lo_type lo_objid ,
wa_doc2loio LIKE LINE OF gt_doc2loio.
**&---------------------------------------------------------------------*
* Parameters Abfrage zur Reduktion der Datenmenge
**&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK auswahl WITH FRAME TITLE text-001.
SELECT-OPTIONS: so_dokar FOR wa_draw-dokar,
so_dokvr FOR wa_draw-dokvr,
so_dokst FOR wa_draw-dokst,
so_doktl FOR wa_draw-doktl,
so_loedk FOR wa_draw-loedk.
"so_filep for wa_draw-filep. "BW 29.05.2012 +
SELECTION-SCREEN END OF BLOCK auswahl.
**&---------------------------------------------------------------------*
* Selektion auf das was ausgeführt werden soll löschen, vergleichen oder kopieren
**&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK auswahl2 WITH FRAME TITLE text-002.
PARAMETERS: r1 RADIOBUTTON GROUP rad1 ,
r4 RADIOBUTTON GROUP rad1 DEFAULT 'X' .
SELECTION-SCREEN END OF BLOCK auswahl2.
**&---------------------------------------------------------------------*
* Selektieren auf die relevanten abfragen
**&---------------------------------------------------------------------*
PERFORM lesen_daten.
*&---------------------------------------------------------------------*
*& Form lesen_daten
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM lesen_daten .
SELECT dokar doknr dokvr doktl dokst loedk filep1 "um filep1 regänzt 29.05.2012+
FROM draw APPENDING TABLE gt_draw
WHERE dokar IN so_dokar
AND dokvr IN so_dokvr
AND dokst IN so_dokst
AND doktl IN so_doktl
AND loedk IN so_loedk.
IF r1 = 'X'.
LOOP AT gt_draw INTO wa_draw.
""""""""""""""""""""""""""""""""""""""""""""""""""""BW 30.05.12 ANFANG +
SELECT lo_index lo_type lo_objid "dokar doknr dokvr doktl lo_index lo_type lo_objid BW 31.05.2012 -
FROM dms_doc2loio APPENDING TABLE gt_doc2loio
"from dms_doc2loio into wa_doc2loio
WHERE dokar IN so_dokar.
* AND dokvr IN so_dokvr
* AND doktl IN so_doktl.
LOOP AT gt_doc2loio INTO wa_doc2loio.
""""""""""""""""""""""""""""""""""""""""""""""""""""BW 30.05.12 ENDE +
WRITE: / wa_draw-dokar,
wa_draw-doknr,
wa_draw-dokvr,
wa_draw-doktl,
wa_draw-dokst,
wa_draw-loedk,
" wa_draw-filep. "BW 30.05.2012 -
wa_draw-filep,
wa_doc2loio-lo_objid.
clear wa_doc2loio.
ENDLOOP.
ENDLOOP.
IF sy-dbcnt = 0.
ULINE.
WRITE: 'Es wurde nichts gefunden! Bitte die Eingabeparameter prüfen.'.
ULINE.
ELSE.
ULINE.
WRITE: sy-dbcnt , 'Dokumente gefunden'.
ULINE.
ENDIF.
ENDIF.
IF r4 = 'X'.
LOOP AT gt_draw INTO wa_draw.
ENDLOOP.
IF sy-dbcnt = 0.
ULINE.
WRITE: 'Es wurde nichts gefunden! Bitte die Eingabeparameter prüfen.'.
ULINE.
ELSE.
ULINE.
WRITE: sy-dbcnt ,
'Dokumente gefunden'.
ULINE.
ENDIF.
ENDIF.
**&---------------------------------------------------------------------*
* Zählen der Ergebnisse und Ausgabe der Daten in Abhängigkeit der gefunden Einträge
**&---------------------------------------------------------------------*
ENDFORM. "lesen_daten
Code: Alles auswählen.
**&---------------------------------------------------------------------*
**& Report Z_ZZ1_KONTROLLE
**&
**&---------------------------------------------------------------------*
**& Es fehlt noch: 1. eine Zählung, 2. eine Ausgabe wenn verglichen wird, 3. und eine Ausgebe was gelöscht wurde
**&
**&---------------------------------------------------------------------*
*
REPORT z_zz1_kontrolle.
**&---------------------------------------------------------------------*
* Sämtliche relevanten Felder aus der Tabelle DRAW lesen
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_draw,
dokar LIKE draw-dokar,
doknr LIKE draw-doknr,
dokvr LIKE draw-dokvr,
doktl LIKE draw-doktl,
dokst LIKE draw-dokst,
loedk LIKE draw-loedk,
filep LIKE draw-filep1, "BW 29.05.2012 +
END OF t_draw.
DATA: gt_draw TYPE SORTED TABLE OF t_draw
WITH UNIQUE KEY dokar doknr dokvr doktl dokst loedk ,
wa_draw LIKE LINE OF gt_draw.
**&---------------------------------------------------------------------*
* sämtliche Felder der Tabelle DMS_DOC2LOIO
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_doc2loio,
dokar LIKE dms_doc2loio-dokar,
doknr LIKE dms_doc2loio-doknr,
dokvr LIKE dms_doc2loio-dokvr,
doktl LIKE dms_doc2loio-doktl,
lo_type LIKE dms_doc2loio-lo_type,
lo_index LIKE dms_doc2loio-lo_index,
lo_objid LIKE dms_doc2loio-lo_objid,
END OF t_doc2loio.
DATA: gt_doc2loio TYPE SORTED TABLE OF t_doc2loio
WITH UNIQUE KEY dokar doknr dokvr doktl lo_type lo_index lo_objid ,
wa_doc2loio LIKE LINE OF gt_doc2loio.
**&---------------------------------------------------------------------*
* sämtliche Felder der Tabelle DMS_PH_CD1
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_ph_cd1,
loio_id LIKE dms_ph_cd1-loio_id,
stor_cat LIKE dms_ph_cd1-stor_cat,
END OF t_ph_cd1.
DATA: gt_ph_cd1 TYPE SORTED TABLE OF t_ph_cd1
WITH UNIQUE KEY loio_id,
wa_ph_cd1 LIKE LINE OF gt_ph_cd1.
**&---------------------------------------------------------------------*
* Parameters Abfrage zur Reduktion der Datenmenge
**&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK auswahl WITH FRAME TITLE text-001.
SELECT-OPTIONS: so_dokar FOR wa_draw-dokar,
so_dokvr FOR wa_draw-dokvr,
so_dokst FOR wa_draw-dokst,
so_doktl FOR wa_draw-doktl,
so_loedk FOR wa_draw-loedk.
"so_filep for wa_draw-filep. "BW 29.05.2012 +
SELECTION-SCREEN END OF BLOCK auswahl.
**&---------------------------------------------------------------------*
* Selektion auf das was ausgeführt werden soll löschen, vergleichen oder kopieren
**&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK auswahl2 WITH FRAME TITLE text-002.
PARAMETERS: r1 RADIOBUTTON GROUP rad1 ,
r4 RADIOBUTTON GROUP rad1 DEFAULT 'X' .
SELECTION-SCREEN END OF BLOCK auswahl2.
**&---------------------------------------------------------------------*
* Selektieren auf die relevanten abfragen
**&---------------------------------------------------------------------*
PERFORM lesen_daten.
*&---------------------------------------------------------------------*
*& Form lesen_daten
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM lesen_daten .
SELECT dokar doknr dokvr doktl dokst loedk filep1 "um filep1 regänzt 29.05.2012+
FROM draw APPENDING TABLE gt_draw
WHERE dokar IN so_dokar
AND dokvr IN so_dokvr
AND dokst IN so_dokst
AND doktl IN so_doktl
AND loedk IN so_loedk.
IF r1 = 'X'.
LOOP AT gt_draw INTO wa_draw.
""""""""""""""""""""""""""""""""""""""""""""""""""""BW 30.05.12 ANFANG +
SELECT dokar doknr dokvr doktl lo_type lo_index lo_objid "BW 31.05.2012 -
FROM dms_doc2loio INTO TABLE gt_doc2loio
WHERE dokar IN so_dokar.
LOOP AT gt_doc2loio INTO wa_doc2loio.
ENDLOOP.
SELECT SINGLE stor_cat
"SELECT loio_id stor_cat
"FROM dms_ph_cd1 INTO TABLE gt_ph_cd1
FROM dms_ph_cd1 INTO wa_ph_cd1
WHERE loio_id = wa_doc2loio-lo_objid.
"LOOP AT gt_ph_cd1 INTO wa_ph_cd1.
""""""""""""""""""""""""""""""""""""""""""""""""""""BW 30.05.12 ENDE +
WRITE: / wa_draw-dokar,
wa_draw-doknr,
wa_draw-dokvr,
wa_draw-doktl,
wa_draw-dokst,
wa_draw-loedk,
wa_draw-filep,
wa_ph_cd1."-stor_cat.
SKIP.
CLEAR wa_doc2loio.
CLEAR wa_ph_cd1.
ULINE.
" ENDLOOP.
ENDLOOP.
IF sy-dbcnt = 0.
ULINE.
WRITE: 'Es wurde nichts gefunden! Bitte die Eingabeparameter prüfen.'.
ULINE.
ELSE.
ULINE.
WRITE: sy-dbcnt , 'Dokumente gefunden'.
ULINE.
ENDIF.
ENDIF.
IF r4 = 'X'.
LOOP AT gt_draw INTO wa_draw.
ENDLOOP.
IF sy-dbcnt = 0.
ULINE.
WRITE: 'Es wurde nichts gefunden! Bitte die Eingabeparameter prüfen.'.
ULINE.
ELSE.
ULINE.
WRITE: sy-dbcnt ,
'Dokumente gefunden'.
ULINE.
ENDIF.
ENDIF.
**&---------------------------------------------------------------------*
* Zählen der Ergebnisse und Ausgabe der Daten in Abhängigkeit der gefunden Einträge
**&---------------------------------------------------------------------*
ENDFORM. "lesen_daten
START-OF-SELECTION.
**&---------------------------------------------------------------------*
* Radiobutton 1
**&---------------------------------------------------------------------*
**&---------------------------------------------------------------------*
*2. Radibutton
**&---------------------------------------------------------------------*
**&---------------------------------------------------------------------*
*
**&---------------------------------------------------------------------*
Code: Alles auswählen.
IF r1 = 'X'.
LOOP AT gt_draw INTO wa_draw.
SELECT dokar doknr dokvr doktl lo_type lo_index lo_objid
FROM dms_doc2loio INTO TABLE gt_doc2loio
WHERE dokar IN so_dokar.
LOOP AT gt_doc2loio INTO wa_doc2loio.
ENDLOOP.
SELECT SINGLE stor_cat
FROM dms_ph_cd1 INTO wa_ph_cd1
WHERE loio_id = wa_doc2loio-lo_objid.
...
ENDLOOP
Code: Alles auswählen.
IF r1 = 'X'.
LOOP AT gt_draw INTO wa_draw.
SELECT SINGLE dokar doknr dokvr doktl lo_type lo_index lo_objid
FROM dms_doc2loio INTO wa_doc2loio
WHERE dokar IN so_dokar.
SELECT SINGLE stor_cat
FROM dms_ph_cd1 INTO wa_ph_cd1
WHERE loio_id = wa_doc2loio-lo_objid.
dein Beispielcode ist noch nicht ganz das, was ich gemeint habe. Schau mal:commolus hat geschrieben: soweit ich dich verstanden habe habe ich probiert es um zu setzen.
Code: Alles auswählen.
LOOP AT gt_draw INTO wa_draw.
SELECT SINGLE dokar doknr dokvr doktl lo_type lo_index lo_objid
FROM dms_doc2loio INTO wa_doc2loio
WHERE dokar IN so_dokar.
Code: Alles auswählen.
Wie ich den Loop nach dem ersten Durchlauf abrechen soll ist mir leider noch nicht ganz klar. Vorallem wie?!
solche Fehler versucht man am besten im Debugger zu klären. Wo läuft das Programm hin, was landet in den internen Tabellen, wo steigt das Programm aus Schleifen aus usw...commolus hat geschrieben: Und sobald ich ein EXIT einbau bekomme ich nur mehr ein Dokument angezeigt obwohl es ca. 50.000 sein sollten.
mach das, ich schau dann noch mal rüber...commolus hat geschrieben: Hmm. Ich schick dir morgen nochmals mein Coding, vielleicht fällt mir ja bis morgen noch eine Lösung ein.
Code: Alles auswählen.
**&---------------------------------------------------------------------*
**& Report Z_ZZ1_KONTROLLE
**&
**&---------------------------------------------------------------------*
**&
**&
**&---------------------------------------------------------------------*
*
REPORT z_zz1_kontrolle.
**&---------------------------------------------------------------------*
* Sämtliche relevanten Felder aus der Tabelle DRAW lesen
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_draw,
dokar LIKE draw-dokar,
doknr LIKE draw-doknr,
dokvr LIKE draw-dokvr,
doktl LIKE draw-doktl,
dokst LIKE draw-dokst,
loedk LIKE draw-loedk,
filep LIKE draw-filep1, "BW 29.05.2012 +
END OF t_draw.
DATA: gt_draw TYPE SORTED TABLE OF t_draw
WITH UNIQUE KEY dokar doknr dokvr doktl dokst loedk ,
wa_draw LIKE LINE OF gt_draw.
**&---------------------------------------------------------------------*
* sämtliche Felder der Tabelle DMS_DOC2LOIO
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_doc2loio,
dokar LIKE dms_doc2loio-dokar,
doknr LIKE dms_doc2loio-doknr,
dokvr LIKE dms_doc2loio-dokvr,
doktl LIKE dms_doc2loio-doktl,
lo_type LIKE dms_doc2loio-lo_type,
lo_index LIKE dms_doc2loio-lo_index,
lo_objid LIKE dms_doc2loio-lo_objid,
END OF t_doc2loio.
DATA: gt_doc2loio TYPE SORTED TABLE OF t_doc2loio
WITH UNIQUE KEY dokar doknr dokvr doktl lo_type lo_index lo_objid ,
wa_doc2loio LIKE LINE OF gt_doc2loio.
**&---------------------------------------------------------------------*
* sämtliche Felder der Tabelle DMS_PH_CD1
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_ph_cd1,
loio_id LIKE dms_ph_cd1-loio_id,
stor_cat LIKE dms_ph_cd1-stor_cat,
END OF t_ph_cd1.
DATA: gt_ph_cd1 TYPE SORTED TABLE OF t_ph_cd1
WITH UNIQUE KEY loio_id,
wa_ph_cd1 LIKE LINE OF gt_ph_cd1.
**&---------------------------------------------------------------------*
* sämtliche Felder der Tabelle DMS_DOC_FILES
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_doc_files,
dokar LIKE dms_doc_files-dokar,
doknr LIKE dms_doc_files-doknr,
dokvr LIKE dms_doc_files-dokvr ,
doktl LIKE dms_doc_files-doktl ,
file_idx LIKE dms_doc_files-file_idx,
filename LIKE dms_doc_files-filename,
END OF t_doc_files.
DATA: gt_doc_files TYPE SORTED TABLE OF t_doc_files
WITH UNIQUE KEY filename,
wa_doc_files LIKE LINE OF gt_doc_files.
**&---------------------------------------------------------------------*
* Parameters Abfrage zur Reduktion der Datenmenge
**&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK auswahl WITH FRAME TITLE text-001.
SELECT-OPTIONS: so_dokar FOR wa_draw-dokar,
so_dokvr FOR wa_draw-dokvr,
so_dokst FOR wa_draw-dokst,
so_doktl FOR wa_draw-doktl,
so_loedk FOR wa_draw-loedk.
"so_filep for wa_draw-filep. "BW 29.05.2012 +
SELECTION-SCREEN END OF BLOCK auswahl.
**&---------------------------------------------------------------------*
* Selektion auf das was ausgeführt werden soll löschen, vergleichen oder kopieren
**&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK auswahl2 WITH FRAME TITLE text-002.
PARAMETERS: r1 RADIOBUTTON GROUP rad1 ,
r4 RADIOBUTTON GROUP rad1 DEFAULT 'X' .
SELECTION-SCREEN END OF BLOCK auswahl2.
**&---------------------------------------------------------------------*
* Selektieren auf die relevanten abfragen
**&---------------------------------------------------------------------*
PERFORM lesen_daten.
*&---------------------------------------------------------------------*
*& Form lesen_daten
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM lesen_daten .
SELECT dokar doknr dokvr doktl dokst loedk filep1 "um filep1 regänzt 29.05.2012+
FROM draw APPENDING TABLE gt_draw
WHERE dokar IN so_dokar
AND dokvr IN so_dokvr
AND dokst IN so_dokst
AND doktl IN so_doktl
AND loedk IN so_loedk.
SELECT SINGLE stor_cat
FROM dms_ph_cd1 INTO wa_ph_cd1
WHERE loio_id = wa_doc2loio-lo_objid.
SELECT SINGLE stor_cat
FROM dms_ph_cd1 INTO wa_ph_cd1
WHERE loio_id = wa_doc2loio-lo_objid.
IF r1 = 'X'.
LOOP AT gt_draw INTO wa_draw.
SELECT dokar doknr dokvr doktl file_idx filename
FROM dms_doc_files INTO wa_doc_files
WHERE dokar IN so_dokar.
WRITE: / wa_doc_files-dokar,
wa_doc_files-doknr,
wa_doc_files-dokvr,
wa_doc_files-doktl,
wa_doc_files-file_idx,
wa_doc_files-filename,
wa_draw-loedk,
wa_ph_cd1.
SKIP.
ULINE.
ENDSELECT.
exit.
uline.
uline.
ENDLOOP.
IF sy-dbcnt = 0.
ULINE.
WRITE: 'Es wurde nichts gefunden! Bitte die Eingabeparameter prüfen.'.
ULINE.
ELSE.
ULINE.
WRITE: sy-dbcnt , 'Dokumente gefunden'.
ULINE.
ENDIF.
ENDIF.
IF r4 = 'X'.
LOOP AT gt_draw INTO wa_draw.
ENDLOOP.
IF sy-dbcnt = 0.
ULINE.
WRITE: 'Es wurde nichts gefunden! Bitte die Eingabeparameter prüfen.'.
ULINE.
ELSE.
ULINE.
WRITE: sy-dbcnt ,
'Dokumente gefunden'.
ULINE.
ENDIF.
ENDIF.
ENDFORM. "lesen_daten
Was meinst du mit "Zählung"? Und bist du dir sicher, dass das Programm wie gewünscht arbeitet? Ist das der komplette Code, oder hast du etwas gekürzt?commolus hat geschrieben: Er hat nur eine andere Reihenfolge als vorher. Durch die Zählung scheinen aber alle Daten an zu kommen.
Was hältst du davon?
Code: Alles auswählen.
SELECT SINGLE stor_cat
FROM dms_ph_cd1 INTO wa_ph_cd1
WHERE loio_id = wa_doc2loio-lo_objid.
SELECT SINGLE stor_cat
FROM dms_ph_cd1 INTO wa_ph_cd1
WHERE loio_id = wa_doc2loio-lo_objid.
Code: Alles auswählen.
LOOP AT gt_draw INTO wa_draw.
SELECT dokar doknr dokvr doktl file_idx filename
FROM dms_doc_files INTO wa_doc_files
WHERE dokar IN so_dokar.
Code: Alles auswählen.
IF r4 = 'X'.
LOOP AT gt_draw INTO wa_draw.
ENDLOOP.
IF sy-dbcnt = 0.