ZINCL_REPORT_MODULE

IT/SAP 2013. 3. 19. 04:33

***********************************************************************

* PROGRAM-ID  : ZINCL_REPORT_MODULE                                          *

* MODULE      : ALL                                                                           *

* TYPE        : INCLUDE                                                                       *

* DESCRIPTION : REPORT(LIST/ALV) PROGRAM 관련 DEFINITION / SUB PROCESS*

***********************************************************************


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

* TYPE-POOLS DEFINE

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

TYPE-POOLS: SLIS.


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

* TABLES DEFINE

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

TABLES: SSCRFIELDS.        " Fields on selection screens


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

* INTERNAL TABLE DEFINE

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

DATA: IT_CELLCOLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.


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

* DATA DEFINE

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

* ALV REPORT

DATA: I_FIELDCAT         TYPE  SLIS_T_FIELDCAT_ALV,

      I_SORT             TYPE  SLIS_T_SORTINFO_ALV,

      I_LAYOUT           TYPE  SLIS_LAYOUT_ALV,

      I_EVENTS           TYPE  SLIS_T_EVENT,

      I_TOP_PAGE         TYPE  SLIS_T_LISTHEADER.


DATA: I_REPID            LIKE SY-REPID,

      I_SAVE(1)          TYPE C,

      I_VARIANT          LIKE DISVARIANT,

      I_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

      I_USER_COMMAND     TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',

      I_TOP_OF_PAGE      TYPE SLIS_FORMNAME VALUE 'IFORM_TOP_OF_PAGE',

      I_STATUS_SET       TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',

      I_DETAIL_COMMAND   TYPE SLIS_FORMNAME VALUE 'DETAIL_COMMAND',

      I_TOP_OF_LIST      TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',

      I_END_OF_LIST      TYPE SLIS_FORMNAME VALUE 'END_OF_LIST',

      I_EVENT_EXIT       TYPE SLIS_FORMNAME VALUE 'EVENT_EXIT',

      I_TITLE            TYPE LVC_TITLE.


* 홀수라인과 짝수라인의 색상 변경을 위한 변수

DATA: I_LINE_CNT TYPE I,

      I_MOD      TYPE I.


* LIST PROGRAM의 Function Button

DATA: I_FUNC_A LIKE SMP_DYNTXT,

      I_FUNC_B LIKE SMP_DYNTXT,

      I_FUNC_C LIKE SMP_DYNTXT.


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

*      Form  IFORM_LINE_COLOR

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

FORM IFORM_LINE_COLOR.

     I_LINE_CNT = I_LINE_CNT + 1.

     I_MOD = I_LINE_CNT MOD 2.


     IF  I_MOD = 1.

         FORMAT INTENSIFIED OFF.

     ELSE.

         FORMAT INTENSIFIED ON.

     ENDIF.

ENDFORM.


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

*      Form  IFORM_VARIANT_INIT

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

FORM IFORM_VARIANT_INIT.

     CLEAR I_VARIANT.

     I_VARIANT-REPORT = I_REPID.

ENDFORM.


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

*      Form  IFORM_LAYOUT_BUILD

*      P_OPT : SPACE(OUTPUTLEN 적용), 'X'(OUTPUTLEN 미적용)

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

FORM IFORM_LAYOUT_BUILD USING P_OPT P_MARK.

     CLEAR I_LAYOUT.

     I_LAYOUT-CELL_MERGE  = 'X'.

     I_LAYOUT-COLWIDTH_OPTIMIZE = P_OPT.

     I_LAYOUT-INFO_FIELDNAME = 'ROWCOLOR'.

     I_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'.

     I_LAYOUT-BOX_FIELDNAME = P_MARK.

ENDFORM.


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

*      Form  IFORM_FIELDCAT_APPEND

*      P_FNAME  : INTERNAL TABLE FIELD NAME

*      P_RTEXT  : 칼럼 내역

*      P_KEY    : 가로 스크롤 고정 키

*      P_SUM    : 부분합계 출력 여부

*      P_CURR   : 금액 단위 적용

*      P_UNIT   : 수량 단위 적용

*      P_HOTSPOT: 사용자 이벤트 사용(셀 더블클릭)

*      P_ICON   : ICON 출력

*      P_JUST   : 정렬 (R)ight (L)eft (C)ent

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

FORM IFORM_FIELDCAT_APPEND USING P_FNAME P_RTEXT P_KEY     P_SUM

                                 P_CURR  P_UNIT  P_HOTSPOT P_ICON

                                 P_JUST  P_LEN  P_EMP.

     DATA L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.


     CLEAR L_FIELDCAT.

     L_FIELDCAT-FIELDNAME    = P_FNAME.

     L_FIELDCAT-REPTEXT_DDIC = P_RTEXT.

     L_FIELDCAT-KEY          = P_KEY.

     L_FIELDCAT-DO_SUM       = P_SUM.

     L_FIELDCAT-CFIELDNAME   = P_CURR.

     L_FIELDCAT-QFIELDNAME   = P_UNIT.

     L_FIELDCAT-HOTSPOT      = P_HOTSPOT.

     L_FIELDCAT-ICON         = P_ICON.

     L_FIELDCAT-JUST         = P_JUST.

     L_FIELDCAT-OUTPUTLEN    = P_LEN.

     L_FIELDCAT-EMPHASIZE    = P_EMP.

     APPEND L_FIELDCAT TO I_FIELDCAT.

ENDFORM.


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

*      Form  IFORM_EVENT_BUILD

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

FORM IFORM_EVENT_BUILD.

     DATA LS_EVENT TYPE SLIS_ALV_EVENT.


     CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

          EXPORTING

             I_LIST_TYPE = 0

          IMPORTING

             ET_EVENTS   = I_EVENTS.


     READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

                         INTO LS_EVENT.

     IF SY-SUBRC = 0.

        MOVE I_TOP_OF_PAGE TO LS_EVENT-FORM.

        APPEND LS_EVENT TO I_EVENTS.

     ENDIF.

ENDFORM.


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

*      Form  IFORM_SORT_BUILD

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

FORM IFORM_SORT_BUILD USING P_ITAB1 P_SPOS P_FNAME P_UP P_DOWN P_SUBTOT.

     DATA L_SORT TYPE SLIS_SORTINFO_ALV.


     CLEAR L_SORT.

     L_SORT-SPOS = P_SPOS.

     L_SORT-TABNAME = P_ITAB1.

     L_SORT-FIELDNAME = P_FNAME.

     L_SORT-UP = P_UP.

     L_SORT-DOWN = P_DOWN.

     L_SORT-SUBTOT = P_SUBTOT.

     APPEND L_SORT TO I_SORT.

ENDFORM.


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

*      FORM PF_STATUS_SET

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

FORM PF_STATUS_SET USING MENU_EXTAB TYPE C. "SLIS_T_EXTAB.

*     SET PF-STATUS '1000'.

     SET PF-STATUS MENU_EXTAB.

ENDFORM.


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

*      Form  IFORM_CALL_ALV_GRID

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

FORM IFORM_CALL_ALV_GRID TABLES P_ITAB1.

     CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

          EXPORTING

             I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'

             I_CALLBACK_PROGRAM       = SY-REPID

*             I_CALLBACK_PF_STATUS_SET = 'MENU' "I_STATUS_SET

             I_BACKGROUND_ID          = 'ALV_BACKGROUND'

             I_GRID_TITLE             = I_TITLE

             IS_LAYOUT                = I_LAYOUT

             I_SAVE                   = 'A'

             IS_VARIANT               = I_VARIANT

             IT_EVENTS                = I_EVENTS[]

             IT_FIELDCAT              = I_FIELDCAT[]

             IT_SORT                  = I_SORT[]

          TABLES

             T_OUTTAB                = P_ITAB1.

ENDFORM.


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

*      FORM IFORM_TOP_OF_PAGE

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

FORM IFORM_TOP_OF_PAGE.

     CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

          EXPORTING

             IT_LIST_COMMENTARY = I_TOP_PAGE.

ENDFORM.


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

*      Form  IFORM_SET_CELLCOLOR

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

FORM IFORM_SET_CELLCOLOR USING P_FIELDNAME P_COL P_INT P_NOKEYCOL.

*    CELL COLOR 설정

     CLEAR: IT_CELLCOLOR.

     IT_CELLCOLOR-FIELDNAME = P_FIELDNAME.

     IT_CELLCOLOR-COLOR-COL = P_COL.

     IT_CELLCOLOR-COLOR-INT = P_INT.              " 0: 흐리게, 1: 진하게

     IT_CELLCOLOR-NOKEYCOL  = P_NOKEYCOL.

     APPEND IT_CELLCOLOR.

ENDFORM.

'IT > SAP' 카테고리의 다른 글

Dunning Block A  (0) 2013.10.30
Posting only possible in periods 2013/03 and 2013/02 in company code 4100  (0) 2013.10.25
ABAP Download  (0) 2013.03.19
ZINCL_COMMON_MODULE  (0) 2013.03.19
Posted by KSH&LSH
,