YPRACTICE_502_ALV

<< Click to Display Table of Contents >>

Navigation:  All About ABAP Technique > ABAP Source Code >

YPRACTICE_502_ALV

*&---------------------------------------------------------------------*

*&  Include           YPRACTICE_502_ALV                                *

*&---------------------------------------------------------------------*

TYPE-POOLS : slis.

 

DATA : gw_is_layout               TYPE        slis_layout_alv,

       gi_it_fieldcat        TYPE        slis_t_fieldcat_alv WITH HEADER LINE,

       gi_it_excluding        TYPE        slis_t_extab        WITH HEADER LINE,

       gi_it_special_groups        TYPE        slis_t_sp_group_alv WITH HEADER LINE,

       gi_it_sort               TYPE        slis_t_sortinfo_alv WITH HEADER LINE,

       gi_it_filter               TYPE        slis_t_filter_alv   WITH HEADER LINE,

       gw_is_sel_hide        TYPE        slis_sel_hide_alv,

       gv_i_default,                

       gv_i_save,                

       gw_is_variant               LIKE        disvariant,

       gi_it_events               TYPE        slis_t_event        WITH HEADER LINE,

       gi_it_event_exit        TYPE        slis_t_event_exit   WITH HEADER LINE,

       gw_is_print               TYPE        slis_print_alv,

       gw_is_reprep_id        TYPE        slis_reprep_id.

 

*&--------------------------------------------------------------------*

*&      Form  fm_alv_show

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

*      -->FT_ITAB    text

*---------------------------------------------------------------------*

FORM fm_alv_show TABLES ft_itab.

  CLEAR gi_it_event_exit.

  gi_it_event_exit-ucomm = '&OUP'.

  gi_it_event_exit-after = 'X'.

  APPEND gi_it_event_exit.

 

  CLEAR gi_it_event_exit.

  gi_it_event_exit-ucomm = '&ODN'.

  gi_it_event_exit-after = 'X'.

  APPEND gi_it_event_exit.

 

  CLEAR gi_it_event_exit.

  gi_it_event_exit-ucomm = '&ETA'.

  gi_it_event_exit-after = 'X'.

  APPEND gi_it_event_exit.

 

  CLEAR gi_it_event_exit.

  gi_it_event_exit-ucomm = '&IC1'.

  gi_it_event_exit-after = 'X'.

  APPEND gi_it_event_exit.

 

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

*      I_INTERFACE_CHECK              = ' '

*      I_BYPASSING_BUFFER             =

*      I_BUFFER_ACTIVE                = ' '

      i_callback_program             = sy-repid

      i_callback_pf_status_set       = 'FM_ALV_SET_PF_STATUS'

      i_callback_user_command        = 'FM_ALV_USER_COMMAND'

*      I_STRUCTURE_NAME               =

      is_layout                      = gw_is_layout

      it_fieldcat                    = gi_it_fieldcat[]

*      IT_EXCLUDING                   =

*      IT_SPECIAL_GROUPS              =

      it_sort                        = gi_it_sort[]

      it_filter                      = gi_it_filter[]

      is_sel_hide                    = gw_is_sel_hide

      i_default                      = gv_i_default

      i_save                         = gv_i_save

      is_variant                     = gw_is_variant

      it_events                      = gi_it_events[]

      it_event_exit                  = gi_it_event_exit[]

      is_print                       = gw_is_print

      is_reprep_id                   = gw_is_reprep_id

*      I_SCREEN_START_COLUMN          = 0

*      I_SCREEN_START_LINE            = 0

*      I_SCREEN_END_COLUMN            = 0

*      I_SCREEN_END_LINE              = 0

*    IMPORTING

*      E_EXIT_CAUSED_BY_CALLER        =

*      ES_EXIT_CAUSED_BY_USER         =

    TABLES

      t_outtab                       = ft_itab

    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.                    "fm_alv_show

 

*&--------------------------------------------------------------------*

*&      Form  fm_alv_reset_data

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

FORM fm_alv_reset_data.

  CLEAR : gw_is_layout,

          gi_it_fieldcat,

          gi_it_excluding,

          gi_it_special_groups,

          gi_it_sort,

          gi_it_filter,

          gw_is_sel_hide,

          gv_i_default,                

          gv_i_save,                

          gw_is_variant,

          gi_it_events,

          gi_it_event_exit,

          gw_is_print,

          gw_is_reprep_id.

 

  REFRESH : gi_it_fieldcat,

            gi_it_excluding,

            gi_it_special_groups,

            gi_it_sort,

            gi_it_filter,

            gi_it_events,

            gi_it_event_exit.

 

ENDFORM.                    "fm_alv_reset_data

 

*&--------------------------------------------------------------------*

*&      Form  fm_alv_set_layout

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

FORM fm_alv_set_layout USING fu_title.

  gw_is_layout-window_titlebar    = fu_title.

  gw_is_layout-zebra              = 'X'.

  gw_is_layout-colwidth_optimize  = 'X'.

  gw_is_layout-no_colhead         = space.

  gw_is_layout-group_change_edit  = 'X'.

*  gw_is_layout-box_fieldname      = 'CHBOX'.

 

ENDFORM.                    "fm_alv_set_layout

 

*&--------------------------------------------------------------------*

*&      Form  fm_alv_set_print

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

FORM fm_alv_set_print.

  gw_is_print-no_print_listinfos    = 'X'.

  gw_is_print-no_print_selinfos     = 'X'.

  gw_is_print-no_coverpage          = 'X'.

  gw_is_print-no_print_hierseq_item = 'X'.

ENDFORM.                    "fm_alv_set_print

 

 

*&--------------------------------------------------------------------*

*&      Form  fm_alv_add_fieldcat

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

*      -->FU_1       text

*      -->FU_2       text

*      -->FU_3       text

*      -->FU_4       text

*      -->FU_5       text

*      -->FU_6       text

*      -->FU_7       text

*      -->FU_8       text

*      -->FU_9       text

*      -->FU_10      text

*      -->FU_11      text

*      -->FU_12      text

*      -->FU_13      text

*      -->FU_14      text

*      -->FU_15      text

*      -->FU_16      text

*      -->FU_17      text

*      -->FU_18      text

*      -->FU_19      text

*      -->FU_20      text

*      -->FU_21      text

*---------------------------------------------------------------------*

FORM fm_alv_add_fieldcat USING fu_1  fu_2  fu_3  fu_4  fu_5  fu_6  fu_7  fu_8  fu_9  fu_10

                               fu_11 fu_12 fu_13 fu_14 fu_15 fu_16 fu_17 fu_18 fu_19 fu_20 fu_21.

 

  CLEAR: gi_it_fieldcat.

  gi_it_fieldcat-fieldname     = fu_1.  " Fieldname

  gi_it_fieldcat-ref_tabname   = fu_2.  " Reference Tablename

  gi_it_fieldcat-ref_fieldname = fu_3.  " Reference Fieldname

  gi_it_fieldcat-no_out        = fu_4.  " (O)blig.(X)no out

  gi_it_fieldcat-outputlen     = fu_5.  " Output length

  gi_it_fieldcat-seltext_l     = fu_6.  " long key word

  gi_it_fieldcat-seltext_m     = fu_7.  " middle key word

  gi_it_fieldcat-seltext_s     = fu_8.  " short key word

  gi_it_fieldcat-reptext_ddic  = fu_9.  " heading (ddic)

  gi_it_fieldcat-round         = fu_10. " round in write statement

  gi_it_fieldcat-do_sum        = fu_11. " sum up

  gi_it_fieldcat-hotspot       = fu_12. " 'X' = hotspot is active -> Event click

  gi_it_fieldcat-decimals_out  = fu_13. " decimals in write statement

  gi_it_fieldcat-currency      = fu_14.

  gi_it_fieldcat-quantity      = fu_15.

  gi_it_fieldcat-qfieldname    = fu_16. " field with quantity unit

  gi_it_fieldcat-cfieldname    = fu_17. " field with currency unit

  gi_it_fieldcat-checkbox      = fu_18. " 'X' = checkbox or ' ' = not checkbox

  gi_it_fieldcat-icon          = fu_19. " 'X' = icon or ' ' = not icon

  gi_it_fieldcat-fix_column    = fu_20. " 'X' = Fix Column On or ' ' = Fix Column off  gi_it_fieldcat-key           = &21. "

  gi_it_fieldcat-key           = fu_21. " 'X' = Key or ' ' = not Key

 

  APPEND gi_it_fieldcat.

ENDFORM.                    "fm_alv_add_fieldcat

 

 

*&--------------------------------------------------------------------*

*&      Form  FM_ALV_SET_PF_STATUS

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

*      -->RT_EXTAB   text

*---------------------------------------------------------------------*

FORM fm_alv_set_pf_status USING rt_extab TYPE slis_t_extab.

  SET PF-STATUS 'YSTANDARD'.

ENDFORM.                    "fm_alv_set_pf_status

 

*&--------------------------------------------------------------------*

*&      Form  FM_USER_COMMAND

*&--------------------------------------------------------------------*

*       text

*---------------------------------------------------------------------*

FORM fm_alv_user_command USING fu_ucomm    LIKE sy-ucomm

                         fu_selfield TYPE slis_selfield.

  DATA: lt_dynpread LIKE dynpread OCCURS 0 WITH HEADER LINE,

        lv_ok_code  LIKE sy-ucomm.

 

  MOVE fu_ucomm TO lv_ok_code.

  CASE lv_ok_code.

    WHEN '&IC1'.

*      PERFORM fm_alv_event_double_click.

    WHEN '&ETA'.

*      PERFORM fm_alv_event_double_click.

    WHEN '&F03' OR '&F15' OR '&F12'.

 

  ENDCASE.

 

  MOVE 'X' TO fu_selfield-refresh.

 

ENDFORM.                    "FM_USER_COMMAND