ABAP ALV REPORTS
*&---------------------------------------------------------------------*
*& Report ZTEE_PD_CSR_TEST_2
*&
*&---------------------------------------------------------------------*
*&
*& Function:
*& Enter package or programmer name, output list with
*& all codes written by said programmer, or belonging
*& to that package.
*&
*& Using DB tables: TADIR.
*&
*& Techniques:
*& OPEN CURSOR
*& SELECTION-SCREEN PROGRAMMING
*& BASIC ALV REPORTS
*&
*&
*&
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTEE_PD_CSR_TEST_2.
type-pools:slis.
TABLES: tadir.
DATA: go_alv TYPE REF TO cl_salv_table.
DATA gs_tadir LIKE tadir.
DATA gst_tadir TYPE tadir.
DATA t_tadir LIKE TABLE OF gs_tadir.
DATA t_wa_tadir LIKE LINE OF t_tadir.
"DATA gst_tadir LIKE LINE OF gs_tadir.
DATA crs_tadir TYPE cursor.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK BACKGROUND WITH FRAME TITLE A2BG.
SELECTION-SCREEN BEGIN OF BLOCK SELECTION WITH FRAME TITLE A1TITLE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (32) A1LINE1 FOR FIELD p_author.
"PARAMETERS:
SELECT-OPTIONS: p_author FOR tadir-author.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (29) A1LINE2 FOR FIELD p_dev.
SELECT-OPTIONS: p_dev FOR tadir-devclass.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (29) B11LINE1 FOR FIELD p_but1.
PARAMETERS: p_but1 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (30) B11LINE2 FOR FIELD p_but2.
PARAMETERS: p_but2 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (30) B11LINE3 FOR FIELD p_but3.
PARAMETERS: p_but3 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK SELECTION.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK BACKGROUND.
INITIALIZATION.
PERFORM SELECTION_SCREEN_TEXT.
START-OF-SELECTION.
PERFORM get_data.
PERFORM out_data.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&
*& Input: None - The parameter/selection fields are not required
*& to have a value.
*& Output: Writes to screen and File.
*& Usage: PERFORM get_data
*&
*& Job: Performs the query
*& Fills internal table with query results
*& Creates output filename and opens it
*& Sorts internal table containing query results
*& Loops over lines of internal table, writes on screen
*&
*&
*&
*&---------------------------------------------------------------------*
FORM get_data.
***************************************
* Basic Select with multiple fields
* Filling internal table gt_ever with contents of ever
* Notes : p_bstat, s_kofix, s_vrefer are the variables
* corresponding to the screen selection parameters.
OPEN CURSOR crs_tadir
FOR SELECT *
* e~vkonto
* e~kofiz
* e~bstatus
* e~vrefer
FROM tadir as e
WHERE e~author IN p_author
AND e~devclass IN p_dev.
DO.
FETCH NEXT CURSOR crs_tadir
"FETCH NEXT CURSOR crs_tadir INTO gst_tadir.
INTO CORRESPONDING FIELDS OF gs_tadir.
"INSERT gs_tadir INTO t_tadir.
APPEND gs_tadir TO t_tadir.
IF sy-subrc <> 0.
CLOSE CURSOR crs_tadir.
EXIT.
ENDIF.
ENDDO.
ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form out_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM out_data.
* LOOP AT t_tadir INTO gst_tadir.
* WRITE: /
* gst_tadir-obj_name,
* gst_tadir-devclass.
* ENDLOOP.
if p_but1 = 'X'.
try.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = go_alv
CHANGING
t_table = t_tadir.
go_alv->display( ).
endtry.
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "CALL FUNCTION MODULE TO DISPLAY ALV GRID
* EXPORTING
* I_CALLBACK_PROGRAM = SY-REPID "SY-REPID IS A SYSTEM VARIABLE WHICH STORES CURRENT PROGRAM NAME
* I_STRUCTURE_NAME = 'TADIR'
* TABLES
* T_OUTTAB = t_tadir. "PASS INTERNAL TABLE TO DISPLAY ALV FORMAT
ELSEIF p_but2 = 'X'.
LOOP AT t_tadir INTO gst_tadir.
WRITE: /
gst_tadir-obj_name,
gst_tadir-devclass.
ENDLOOP.
ELSEIF p_but3 = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "CALL FUNCTION MODULE TO DISPLAY ALV GRID
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID "SY-REPID IS A SYSTEM VARIABLE WHICH STORES CURRENT PROGRAM NAME
I_STRUCTURE_NAME = 'TADIR'
TABLES
T_OUTTAB = t_tadir. "PASS INTERNAL TABLE TO DISPLAY ALV FORMAT
ENDIF.
ENDFORM. "out_data
*&---------------------------------------------------------------------*
*& Form selection_screen_text
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SELECTION_SCREEN_TEXT.
A1TITLE = 'Code Finder'.
A1LINE1 = 'Name of Programmer:'.
A1LINE2 = 'Name of Package:'.
A2BG = 'AOAOAOA'.
B11LINE1 = 'parameter'.
B11LINE2 = 'parameter2'.
ENDFORM. " selection_screen_text
1. Sample code