onlyforbopi
7/7/2017 - 10:10 AM

ABAP ALV REPORTS

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