************************************************************************ * Programm : ZSTRDIR * * Themengebiet: SAP-SQL, Selektionsbildergänzung, Interaktives Rep. * * Beschreibung: Lesen von SAP-Tabellen mittels SAP-SQL. * * Selektionen mit WHERE, Interne Tabellen, * * Zeilenauswahl * * Art : Beispielprogramm * * Autor : Prof. Thomas Müller * ************************************************************************ PROGRAM ZSTRDIR. TABLES TRDIR. "Tabelle der ABAP-Programme DATA BEGIN OF PROGTAB OCCURS 50. "Interne Tabelle für Zeilen- INCLUDE STRUCTURE TRDIR. "auswahlmöglichkeiten DATA END OF PROGTAB. DATA EDITIERBAR LIKE TRDIR-EDTX. DATA ANZAHL TYPE I. DATA ANTWORT(1). PARAMETER: SUCH(20) DEFAULT 'Z*'. "Suche Programmname PARAMETER: AUTO(20) DEFAULT '*'. "Suche Autor *SELECT-OPTIONS RPKL FOR TRDIR-CLAS DEFAULT 'Z*'. PARAMETER: RPKL(04) DEFAULT '*'. "Suche Reportklasse TRANSLATE SUCH USING '*%'. "Zeichen * ist % TRANSLATE AUTO USING '*%'. "Zeichen * ist % TRANSLATE RPKL USING '*%'. "Zeichen * ist % PERFORM HOLE_DATEIEN TABLES PROGTAB. DESCRIBE TABLE PROGTAB LINES ANZAHL. SORT PROGTAB BY CLAS NAME CNAM. LOOP AT PROGTAB. WRITE: / PROGTAB-NAME, 12 PROGTAB-CNAM, 25 PROGTAB-UNAM, 38 PROGTAB-UDAT DD/MM/YYYY, 52 PROGTAB-DBNA, 58 PROGTAB-CLAS. IF PROGTAB-EDTX = 'X'. WRITE 65 'Gesperrt'. ELSE. WRITE 65 'nicht gesperrt'. ENDIF. WRITE 80 PROGTAB-EDTX AS CHECKBOX. HIDE PROGTAB-NAME. "Zeilenauswahl ermöglichen ENDLOOP. AT LINE-SELECTION. CHECK NOT PROGTAB-NAME IS INITIAL. IF PROGTAB-EDTX = 'X'. EDITIERBAR = 'X'. ELSE. EDITIERBAR = SPACE. ENDIF. CALL FUNCTION 'EDITOR_PROGRAM' EXPORTING APPID = 'PG' DISPLAY = EDITIERBAR PROGRAM = PROGTAB-NAME. CLEAR PROGTAB-NAME. "wieder auf Initialwert setzen AT PF8. "F8 = Löschen der Datei CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' EXPORTING DEFAULTOPTION = 'J' TEXTLINE1 = 'Soll das genannte Programm ' TEXTLINE2 = 'wirklich gelöscht werden' TITEL = PROGTAB-NAME IMPORTING ANSWER = ANTWORT. CASE ANTWORT. WHEN 'J'. DELETE REPORT PROGTAB-NAME. " Löschen des Reports DELETE PROGTAB INDEX SY-TABIX. " Löschen der Tabellenzeile * SCROLL LIST TO PAGE 1. ENDCASE. TOP-OF-PAGE. WRITE: / SUCH, 12 AUTO, 'Anzahl der gefundenen Programme', ANZAHL. SKIP 1. FORM HOLE_DATEIEN TABLES PT. REFRESH PT. SELECT * " Alle Attribute FROM TRDIR " aus Tabelle TRDIR INTO TABLE PT " in ITab pt WHERE NAME LIKE SUCH AND CNAM LIKE AUTO " Selektionskriterien AND CLAS LIKE RPKL. ENDFORM.