Feb 8, 2011

ALV IN POPUP & DIALOG BOX


FOLLOWING CODE HELP YOU TO GET ALV REPORT IN POPUP & DIALOG WINDOW
*Type pools for ALV declarations
TYPE-POOLS : slis.
*Internal table and wa declarations for T582A.
DATA : it_t582a TYPE STANDARD TABLE OF t582a INITIAL SIZE 0,
       wa_t582a TYPE t582a.
*Internal table and wa declarations for T582S.
DATA : it_text TYPE STANDARD TABLE OF t582s,
       wa_text TYPE t582s.
*Structure declaration for output
TYPES : BEGIN OF ty_output,
        infty TYPE infty,
        zeitb TYPE dzeitb,
        itext TYPE intxt,
        pnnnn TYPE pnnnn_d,
        dname TYPE dianm,
        namst TYPE namst,
        edynr TYPE edynp,
        ldynr TYPE ldynp,
        stypt TYPE stypt,
        sytxt TYPE sytxt,
        zbtab TYPE dzbtab,
        checkbox(1),
        END OF ty_output.
*Internal table and work area declaration for output in pop up
DATA : it_output TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,
       wa_output TYPE ty_output.
*Internal table and workarea declaration for alv dialog display
DATA : it_display TYPE STANDARD TABLE OF ty_output INITIAL SIZE 0,
       wa_display TYPE ty_output.
*data declarations for ALV
DATA:ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv,
    ls_fieldcatlog TYPE slis_fieldcat_alv,
    lt_fieldcatlog TYPE slis_t_fieldcat_alv,
    lt_layout TYPE slis_layout_alv.
*Initialization event
INITIALIZATION.
*Start of selection event
START-OF-SELECTION.
*Select to fetch all the infotypes and details in sap system
  SELECT *
         FROM t582a
         INTO CORRESPONDING FIELDS OF TABLE it_t582a.
*Select to fetch the infotypes text
  IF it_t582a[] IS NOT INITIAL.
    SELECT * FROM t582s INTO CORRESPONDING FIELDS OF TABLE it_text
    FOR ALL ENTRIES IN it_t582a WHERE infty = it_t582a-infty
    AND sprsl = 'E'.
  ENDIF.
*Appending the selected values to the output table
  LOOP AT it_t582a INTO wa_t582a.
    wa_output-infty = wa_t582a-infty.
    wa_output-zeitb = wa_t582a-zeitb.
    wa_output-pnnnn = wa_t582a-pnnnn.
    wa_output-dname = wa_t582a-dname.
    wa_output-namst = wa_t582a-namst.
    wa_output-edynr = wa_t582a-edynr.
    wa_output-ldynr = wa_t582a-ldynr.
    wa_output-stypt = wa_t582a-stypt.
    wa_output-sytxt = wa_t582a-sytxt.
    wa_output-zbtab = wa_t582a-zbtab.
    READ TABLE it_text INTO wa_text WITH KEY infty = wa_t582a-infty.
    wa_output-itext = wa_text-itext.
    APPEND wa_output TO it_output.
    CLEAR wa_output.
  ENDLOOP.
*Subroutine to display the pop up values.
  PERFORM popup_display.
*Subroutine to display the ALV dialog display
  PERFORM alv_output.
*----------------------------------------------------------------*
*      Form  popup_display
*------------------------------------------------------------*
FORM popup_display.
*field catalogue for pop up
  CLEAR ls_fieldcat.
  ls_fieldcat-row_pos   = '1'.
  ls_fieldcat-col_pos   = '1'.
  ls_fieldcat-fieldname = 'CHECKBOX'.
  ls_fieldcat-tabname   = 'IT_OUTPUT'.
  ls_fieldcat-seltext_m = 'SELECT'.
  APPEND ls_fieldcat TO lt_fieldcat.
  CLEAR ls_fieldcat.
  ls_fieldcat-row_pos   = '1'.
  ls_fieldcat-col_pos   = '2'.
  ls_fieldcat-fieldname = 'ITEXT'.
  ls_fieldcat-tabname   = 'IT_OUTPUT'.
  ls_fieldcat-seltext_m = 'DESCRIPTION'.
  ls_fieldcat-outputlen = 50.
  APPEND ls_fieldcat TO lt_fieldcat.
* Display data in a POPUP
  CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
    EXPORTING
      i_zebra              = 'X'
      it_fieldcat          = lt_fieldcat
      i_tabname            = 'IT_OUTPUT'
      i_checkbox_fieldname = 'CHECKBOX'
    TABLES
      t_outtab             = it_output.
*Appending the selected infotypes only to internal table
  LOOP AT it_output INTO wa_output WHERE checkbox = 'X'.
    wa_display-itext = wa_output-itext.
    wa_display-infty = wa_output-infty.
    wa_display-zeitb = wa_output-zeitb.
    wa_display-pnnnn = wa_output-pnnnn.
    wa_display-dname = wa_output-dname.
    wa_display-namst = wa_output-namst.
    wa_display-edynr = wa_output-edynr.
    wa_display-ldynr = wa_output-ldynr.
    wa_display-sytxt = wa_output-sytxt.
    wa_display-stypt = wa_output-stypt.
    wa_display-zbtab = wa_output-zbtab.
    APPEND wa_display TO it_display.
    CLEAR wa_display.
  ENDLOOP.
ENDFORM.                               " popup_display
*&-------------------------------------------------------------*
*&      Form  alv_output
*&-------------------------------------------------------------*
FORM alv_output .
*fieldcatalogue for ALV dialog
  PERFORM build_fieldcat.
*Layout for ALV dialog
  PERFORM build_layout.
**ALV dialog output
  PERFORM alv.
ENDFORM.                    " alv_output
*&------------------------------------------------------------*
*&      Form  build_fieldcat
*&------------------------------------------------------------*
FORM build_fieldcat .
*fieldcatalogue for alv dialog
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '1'.
  ls_fieldcatlog-fieldname = 'INFTY'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'Infotype'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '2'.
  ls_fieldcatlog-fieldname = 'ITEXT'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'Description'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '3'.
  ls_fieldcatlog-fieldname = 'ZEITB'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'TimeConstraint'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '4'.
  ls_fieldcatlog-fieldname = 'PNNNN'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'Structure'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '5'.
  ls_fieldcatlog-fieldname = 'DNAME'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'DialogModule'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '6'.
  ls_fieldcatlog-fieldname = 'NAMST'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'Subtypefield'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '7'.
  ls_fieldcatlog-fieldname = 'EDYNR'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'Singlescreenno'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '8'.
  ls_fieldcatlog-fieldname = 'LDYNR'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'Listscreenno'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '9'.
  ls_fieldcatlog-fieldname = 'STYPT'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'SubtypTable'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '10'.
  ls_fieldcatlog-fieldname = 'SYTXT'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'Subtyptexttable'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
  CLEAR ls_fieldcatlog.
  ls_fieldcatlog-row_pos   = '1'.
  ls_fieldcatlog-col_pos   = '11'.
  ls_fieldcatlog-fieldname = 'ZBTAB'.
  ls_fieldcatlog-tabname   = 'IT_DISPLAY'.
  ls_fieldcatlog-seltext_m = 'SubtypeTCTable'.
  APPEND ls_fieldcatlog TO lt_fieldcatlog.
ENDFORM.                    " build_fieldcat
*&----------------------------------------------------------*
*&      Form  build_layout
*&----------------------------------------------------------*
*Layout for ALV dialog
FORM build_layout .
  lt_layout-zebra = 'X'.
  lt_layout-colwidth_optimize = 'X'.
ENDFORM.                    " build_layout
*&---------------------------------------------------------------*
*&      Form  alv
*&---------------------------------------------------------------*
*Alv dialog output.
FORM alv .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program    = sy-repid
      i_grid_title          = 'INFOTYPE DETAILS'
      is_layout             = lt_layout
      it_fieldcat           = lt_fieldcatlog
      i_screen_start_column = 10
      i_screen_start_line   = 20
      i_screen_end_column   = 100
      i_screen_end_line     = 40
    TABLES
      t_outtab              = it_display
    EXCEPTIONS
      program_error         = 1
      OTHERS                = 2.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
ENDFORM.                    " alv

4 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. It was Nice post and very useful information on sap hana access.

    ReplyDelete
  4. It has Wonderful Information on sap hana remote access.

    ReplyDelete