***********************************************************************
* 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 |