*----------------------------------------------------------------------*
* INTERNAL TABLE DEFINE
*----------------------------------------------------------------------*
DATA: G_REPID LIKE SY-REPID,
GS_PRINT TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV,
COL_POS TYPE I,
G_VARIANT TYPE DISVARIANT,
G_SAVE VALUE 'A', "조회변형 저장
G_LIGHTS_FIELDNAME TYPE SLIS_FIELDNAME VALUE 'LIGHTS',
"상태버튼은 필드명으로 설정
G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
"USER-COMMAND를 FORM명
*----------------------------------------------------------------------*
DATA: BEGIN OF ITAB01 OCCURS 0,
LIFNR LIKE EKKO-LIFNR, "공급업체 계정번호
EBELN LIKE EKPO-EBELN, "구매문서번호
EBELP LIKE EKPO-EBELP, "구매문서품목번호
MATNR LIKE EKPO-MATNR, "자재번호
TXZ01 LIKE EKPO-TXZ01, "내역
KNTTP LIKE EKPO-KNTTP, "계정지정범주
MENGE0 LIKE EKPO-MENGE, "목표수량
MENGE1 LIKE EKBE-MENGE, "수량
MEINS LIKE EKPO-MEINS, "구매오더단위
WAERS LIKE EKBE-WAERS, "통화키
WRBTR LIKE EKBE-WRBTR, "전표통화금액
BUDAT LIKE EKBE-BUDAT, "전표전기일
EKGRP LIKE EKKO-EKGRP, "구매그룹
WKURS LIKE EKKO-WKURS, "환율
WERKS LIKE EKPO-WERKS, "플랜트
SHKZG LIKE EKBE-SHKZG, "차/대변 지시자
VGABE LIKE EKBE-VGABE, "프랜잭션/이벤트 유형, 구매오더 이력
BEWTP LIKE EKBE-BEWTP. "PO이력종류
DATA: END OF ITAB01.
DATA: BEGIN OF ITAB02 OCCURS 0.
INCLUDE STRUCTURE Z05MMS006.
DATA: END OF ITAB02.
DATA: BEGIN OF IDD03L OCCURS 0,
FIELDNAME TYPE DD03L-FIELDNAME,
POSITION TYPE DD03L-POSITION,
REFFIELD TYPE DD03L-REFFIELD,
DATATYPE TYPE DD03L-DATATYPE.
DATA: END OF IDD03L.
*----------------------------------------------------------------------*
* DATA DEFINE
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* SELECT OPTIONS
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLOCK0 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_LIFNR FOR EKKO-LIFNR "Vendor's account number
OBLIGATORY
NO-EXTENSION,
S_MATNR FOR EKPO-MATNR "Material number
NO-EXTENSION
MATCHCODE OBJECT MAT1,
S_WERKS FOR EKPO-WERKS "Plant
NO-EXTENSION,
S_BUKRS FOR EKKO-BUKRS "Company Code
OBLIGATORY
NO-EXTENSION
DEFAULT '1000',
S_BUDAT FOR EKBE-BUDAT "Posting date in the doc
NO-EXTENSION
OBLIGATORY
DEFAULT SY-DATUM,
S_WAERS FOR EKBE-WAERS "Currency Key
NO-EXTENSION
OBLIGATORY
DEFAULT 'KRW',
S_EKGRP FOR EKKO-EKGRP "Purchasing group
NO-EXTENSION,
S_BEDAT FOR EKKO-BEDAT "Purchasing document date
NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK BLOCK0.
PERFORM ALV01_HEAD USING GT_FIELDCAT[].
PERFORM ALV02_SORT.
PERFORM ALV03_VARIANT.
PERFORM ALV04_COMMENT USING GT_LIST_TOP_OF_PAGE[].
PERFORM ALV05_EVENT CHANGING GT_EVENTS.
PERFORM ALV06_LAYPUT USING GS_LAYOUT.
PERFORM ALV07_CALLALV.
*=========================================
* PERFORM alv01_variant.
* PERFORM alv02_comment USING gt_list_top_of_page[].
* PERFORM alv03_head USING gt_fieldcat[].
* PERFORM alv04_sort.
* PERFORM alv05_event CHANGING gt_events.
* PERFORM alv06_layput USING gs_layout.
* PERFORM alv07_callalv.
*
*----------------------------------------------------------------------*
* AT LINE-SELEC\ION
*----------------------------------------------------------------------*
************************************************************************
* SUBBROUTINES *
************************************************************************
*----------------------------------------------------------------------*
* FORM P1000_SELECT
*----------------------------------------------------------------------*
FORM P1000_SELECT.
DATA : L_ROW TYPE I VALUE 0.
DATA : VMENGE0 TYPE MENGE_D, "수량
VMENGE1 TYPE MENGE_D, "수량
VWRBTR0 TYPE WRBTR, "전표통화금액
VWRBTR TYPE WRBTR, "전표통화금액
VDMBTR TYPE DMBTR, "금액(현지 통화)
VMENGE2 TYPE MENGE_D, "수량
VWRBTR1 TYPE WRBTR . "전표통화금액
"Purchase Order Header 정보를 Query 한다.
SELECT A~LIFNR "공급업체 계정 번호
B~EBELN "구매 문서 번호
B~EBELP "구매 문서 품목 번호
B~MATNR "자재 번호
B~TXZ01 "내역
B~KNTTP "계정 지정 범주
B~MENGE AS MENGE0 "목표 수량
C~MENGE AS MENGE1 "수량
B~MEINS "구매 오더 단위
C~WAERS "통화 키
C~WRBTR "전표통화금액
C~BUDAT "전표의 전기일
A~EKGRP "구매 그룹
A~WKURS "환율
B~WERKS "플랜트
C~SHKZG "차변/대변 지시자
C~VGABE "트랜잭션/이벤트 유형,구매오더이력
C~BEWTP "PO 이력종류
INTO CORRESPONDING FIELDS OF TABLE ITAB01
FROM EKKO AS A
INNER JOIN EKPO AS B ON A~EBELN = B~EBELN "구매문서번호
INNER JOIN EKBE AS C ON B~EBELN = C~EBELN
AND B~EBELP = C~EBELP
WHERE A~LIFNR IN S_LIFNR "Vendor's account number
AND A~EKGRP IN S_EKGRP "Purchasing group
AND A~BEDAT IN S_BEDAT "Purchasing document date
AND A~BUKRS IN S_BUKRS "Company Code
AND A~BSART NE 'UB' "Order type
AND B~WERKS IN S_WERKS "Plant
AND B~MATNR IN S_MATNR
AND B~LOEKZ = SPACE
AND C~BUDAT IN S_BUDAT "Posting date in the doc
AND C~WAERS IN S_WAERS. "Currency Key
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'Data가 존재하지 않습니다.'.
LEAVE LIST-PROCESSING.
ENDIF.
*----------------------------------------------------------------------*
* FORM ALV01_HEAD
*----------------------------------------------------------------------*
FORM ALV01_HEAD USING GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
"*********************************************************************
" DATA FIELD CATALOG, EXPLAIN FIELD DESCRIPTION TO ALV
"*********************************************************************
REFRESH: IDD03L, GT_FIELDCAT.
SELECT FIELDNAME POSITION REFFIELD DATATYPE
INTO CORRESPONDING FIELDS OF TABLE IDD03L
FROM DD03L
WHERE TABNAME = 'Z05MMS006'
ORDER BY POSITION.
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'Structure Z05MMS006가 없습니다.'.
STOP.
ENDIF.
LOOP AT IDD03L.
CLEAR: FIELDCAT_IN-CFIELDNAME,
FIELDCAT_IN-QFIELDNAME,
FIELDCAT_IN-JUST,
FIELDCAT_IN-DO_SUM,
FIELDCAT_IN-SELTEXT_M.
IF IDD03L-REFFIELD <> ' '.
CASE IDD03L-DATATYPE.
WHEN 'QUAN'.
FIELDCAT_IN-QFIELDNAME = IDD03L-REFFIELD.
WHEN 'CURR'.
FIELDCAT_IN-CFIELDNAME = IDD03L-REFFIELD.
ENDCASE.
IF IDD03L-FIELDNAME = 'NAME1'.
CLEAR: FIELDCAT_IN-KEY,
FIELDCAT_IN-KEY_SEL.
ENDIF.
ENDLOOP.
ENDFORM.
*----------------------------------------------------------------------*
* FORM ALV02_SORT
*----------------------------------------------------------------------*
FORM ALV02_SORT.
************************************************************************
* DATA SORTING AND SUBTOTAL
************************************************************************
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
*----------------------------------------------------------------------*
* FORM ALV03_VARIANT
*----------------------------------------------------------------------*
FORM ALV03_VARIANT.
CLEAR: G_VARIANT.
*----------------------------------------------------------------------*
* FORM ALV04_COMMENT
*----------------------------------------------------------------------*
FORM ALV04_COMMENT USING LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
REFRESH LT_TOP_OF_PAGE.
"LIST HEADING LINE: TYPE H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = '입고현황 조회'.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
"STATUS LINE: TYPE S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = '입고일자'.
IF S_BUDAT-HIGH IS INITIAL.
LS_LINE-INFO = S_BUDAT-LOW.
ELSE.
CONCATENATE S_BUDAT-LOW '~' S_BUDAT-HIGH
INTO LS_LINE-INFO.
ENDIF.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = 'PLANT'.
IF S_WERKS-HIGH IS INITIAL.
LS_LINE-INFO = S_WERKS-LOW.
ELSE.
CONCATENATE S_WERKS-LOW '~' S_WERKS-HIGH
INTO LS_LINE-INFO.
ENDIF.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
ENDFORM. " ALV04_COMMENT
*----------------------------------------------------------------------*
* FORM ALV05_EVENT
*----------------------------------------------------------------------*
FORM ALV05_EVENT CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS: GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME
VALUE 'TOP_OF_PAGE',
GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME
VALUE 'END_OF_PAGE'.
* ***********************************************************************
* EVENT : TOP_OF_PAGE
* ***********************************************************************
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
* ***********************************************************************
* EVENT : END_OF_PAGE
* ***********************************************************************
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
ENDFORM.
*----------------------------------------------------------------------*
* FORM ALV06_LAYPUT
*----------------------------------------------------------------------*
FORM ALV06_LAYPUT USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
LS_LAYOUT-ZEBRA = 'X'.
LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
LS_LAYOUT-BOX_FIELDNAME = SPACE.
LS_LAYOUT-NO_INPUT = 'X'.
LS_LAYOUT-NO_VLINE = ' '.
LS_LAYOUT-NO_COLHEAD = ' '.
LS_LAYOUT-LIGHTS_CONDENSE = 'X'.
LS_LAYOUT-GROUP_BUTTONS = SPACE.
ENDFORM. " ALV06_LAYPUT
*----------------------------------------------------------------------*
* FORM TOP_OF_PAGE
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
WRITE: SY-DATUM, 'PAGE NO', SY-PAGNO LEFT-JUSTIFIED.
ENDFORM.
*----------------------------------------------------------------------*
* FORM TOP_OF_PAGE
*----------------------------------------------------------------------*
FORM END_OF_PAGE.
WRITE AT (SY-LINSZ) SY-PAGNO CENTERED.
ENDFORM.
*----------------------------------------------------------------------*
* INTERNAL TABLE DEFINE
*----------------------------------------------------------------------*
DATA: G_REPID LIKE SY-REPID,
GS_PRINT TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV,
COL_POS TYPE I,
G_VARIANT TYPE DISVARIANT,
G_SAVE VALUE 'A', "조회변형 저장
G_LIGHTS_FIELDNAME TYPE SLIS_FIELDNAME VALUE 'LIGHTS',
"상태버튼은 필드명으로 설정
G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
"USER-COMMAND를 FORM명
*----------------------------------------------------------------------*
DATA: BEGIN OF ITAB01 OCCURS 0,
LIFNR LIKE EKKO-LIFNR, "공급업체 계정번호
EBELN LIKE EKPO-EBELN, "구매문서번호
EBELP LIKE EKPO-EBELP, "구매문서품목번호
MATNR LIKE EKPO-MATNR, "자재번호
TXZ01 LIKE EKPO-TXZ01, "내역
KNTTP LIKE EKPO-KNTTP, "계정지정범주
MENGE0 LIKE EKPO-MENGE, "목표수량
MENGE1 LIKE EKBE-MENGE, "수량
MEINS LIKE EKPO-MEINS, "구매오더단위
WAERS LIKE EKBE-WAERS, "통화키
WRBTR LIKE EKBE-WRBTR, "전표통화금액
BUDAT LIKE EKBE-BUDAT, "전표전기일
EKGRP LIKE EKKO-EKGRP, "구매그룹
WKURS LIKE EKKO-WKURS, "환율
WERKS LIKE EKPO-WERKS, "플랜트
SHKZG LIKE EKBE-SHKZG, "차/대변 지시자
VGABE LIKE EKBE-VGABE, "프랜잭션/이벤트 유형, 구매오더 이력
BEWTP LIKE EKBE-BEWTP. "PO이력종류
DATA: END OF ITAB01.
DATA: BEGIN OF ITAB02 OCCURS 0.
INCLUDE STRUCTURE Z05MMS006.
DATA: END OF ITAB02.
DATA: BEGIN OF IDD03L OCCURS 0,
FIELDNAME TYPE DD03L-FIELDNAME,
POSITION TYPE DD03L-POSITION,
REFFIELD TYPE DD03L-REFFIELD,
DATATYPE TYPE DD03L-DATATYPE.
DATA: END OF IDD03L.
*----------------------------------------------------------------------*
* DATA DEFINE
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* SELECT OPTIONS
*定义SCREEN
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLOCK0 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_LIFNR FOR EKKO-LIFNR "Vendor's account number
OBLIGATORY
NO-EXTENSION,
S_MATNR FOR EKPO-MATNR "Material number
NO-EXTENSION
MATCHCODE OBJECT MAT1,
S_WERKS FOR EKPO-WERKS "Plant
NO-EXTENSION,
S_BUKRS FOR EKKO-BUKRS "Company Code
OBLIGATORY
NO-EXTENSION
DEFAULT '1000',
S_BUDAT FOR EKBE-BUDAT "Posting date in the doc
NO-EXTENSION
OBLIGATORY
DEFAULT SY-DATUM,
S_WAERS FOR EKBE-WAERS "Currency Key
NO-EXTENSION
OBLIGATORY
DEFAULT 'KRW',
S_EKGRP FOR EKKO-EKGRP "Purchasing group
NO-EXTENSION,
S_BEDAT FOR EKKO-BEDAT "Purchasing document date
NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK BLOCK0.
*用ALV格式输出report
PERFORM ALV01_HEAD USING GT_FIELDCAT[].
PERFORM ALV02_SORT.
PERFORM ALV03_VARIANT.
PERFORM ALV04_COMMENT USING GT_LIST_TOP_OF_PAGE[].
PERFORM ALV05_EVENT CHANGING GT_EVENTS.
PERFORM ALV06_LAYPUT USING GS_LAYOUT.
PERFORM ALV07_CALLALV.
*=========================================
* PERFORM alv01_variant.
* PERFORM alv02_comment USING gt_list_top_of_page[].
* PERFORM alv03_head USING gt_fieldcat[].
* PERFORM alv04_sort.
* PERFORM alv05_event CHANGING gt_events.
* PERFORM alv06_layput USING gs_layout.
* PERFORM alv07_callalv.
*
*----------------------------------------------------------------------*
* AT LINE-SELEC\ION
*----------------------------------------------------------------------*
************************************************************************
* SUBBROUTINES *
************************************************************************
*----------------------------------------------------------------------*
* FORM P1000_SELECT
*----------------------------------------------------------------------*
FORM P1000_SELECT.
DATA : L_ROW TYPE I VALUE 0.
*内部变量
DATA : VMENGE0 TYPE MENGE_D, "수량
VMENGE1 TYPE MENGE_D, "수량
VWRBTR0 TYPE WRBTR, "전표통화금액
VWRBTR TYPE WRBTR, "전표통화금액
VDMBTR TYPE DMBTR, "금액(현지 통화)
VMENGE2 TYPE MENGE_D, "수량
VWRBTR1 TYPE WRBTR . "전표통화금액
*搜索数据
"Purchase Order Header 정보를 Query 한다.
SELECT A~LIFNR "공급업체 계정 번호
B~EBELN "구매 문서 번호
B~EBELP "구매 문서 품목 번호
B~MATNR "자재 번호
B~TXZ01 "내역
B~KNTTP "계정 지정 범주
B~MENGE AS MENGE0 "목표 수량
C~MENGE AS MENGE1 "수량
B~MEINS "구매 오더 단위
C~WAERS "통화 키
C~WRBTR "전표통화금액
C~BUDAT "전표의 전기일
A~EKGRP "구매 그룹
A~WKURS "환율
B~WERKS "플랜트
C~SHKZG "차변/대변 지시자
C~VGABE "트랜잭션/이벤트 유형,구매오더이력
C~BEWTP "PO 이력종류
INTO CORRESPONDING FIELDS OF TABLE ITAB01 *放入内表
FROM EKKO AS A
INNER JOIN EKPO AS B ON A~EBELN = B~EBELN "구매문서번호
INNER JOIN EKBE AS C ON B~EBELN = C~EBELN
AND B~EBELP = C~EBELP
WHERE A~LIFNR IN S_LIFNR "Vendor's account number
AND A~EKGRP IN S_EKGRP "Purchasing group
AND A~BEDAT IN S_BEDAT "Purchasing document date
AND A~BUKRS IN S_BUKRS "Company Code
AND A~BSART NE 'UB' "Order type
AND B~WERKS IN S_WERKS "Plant
AND B~MATNR IN S_MATNR
AND B~LOEKZ = SPACE
AND C~BUDAT IN S_BUDAT "Posting date in the doc
AND C~WAERS IN S_WAERS. "Currency Key
*没有搜索到数据
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'Data가 존재하지 않습니다.'.
LEAVE LIST-PROCESSING.
ENDIF.
*----------------------------------------------------------------------*
* FORM ALV01_HEAD
*----------------------------------------------------------------------*
FORM ALV01_HEAD USING GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
"*********************************************************************
" DATA FIELD CATALOG, EXPLAIN FIELD DESCRIPTION TO ALV
"*********************************************************************
REFRESH: IDD03L, GT_FIELDCAT.
SELECT FIELDNAME POSITION REFFIELD DATATYPE
INTO CORRESPONDING FIELDS OF TABLE IDD03L
FROM DD03L
WHERE TABNAME = 'Z05MMS006'
ORDER BY POSITION.
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'Structure Z05MMS006가 없습니다.'.
STOP.
ENDIF.
LOOP AT IDD03L.
CLEAR: FIELDCAT_IN-CFIELDNAME,
FIELDCAT_IN-QFIELDNAME,
FIELDCAT_IN-JUST,
FIELDCAT_IN-DO_SUM,
FIELDCAT_IN-SELTEXT_M.
IF IDD03L-REFFIELD <> ' '.
CASE IDD03L-DATATYPE.
WHEN 'QUAN'.
FIELDCAT_IN-QFIELDNAME = IDD03L-REFFIELD.
WHEN 'CURR'.
FIELDCAT_IN-CFIELDNAME = IDD03L-REFFIELD.
ENDCASE.
IF IDD03L-FIELDNAME = 'NAME1'.
CLEAR: FIELDCAT_IN-KEY,
FIELDCAT_IN-KEY_SEL.
ENDIF.
ENDLOOP.
ENDFORM.
*----------------------------------------------------------------------*
* FORM ALV02_SORT
*----------------------------------------------------------------------*
FORM ALV02_SORT.
************************************************************************
* DATA SORTING AND SUBTOTAL
************************************************************************
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
*----------------------------------------------------------------------*
* FORM ALV03_VARIANT
*----------------------------------------------------------------------*
FORM ALV03_VARIANT.
CLEAR: G_VARIANT.
*----------------------------------------------------------------------*
* FORM ALV04_COMMENT
*----------------------------------------------------------------------*
FORM ALV04_COMMENT USING LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
REFRESH LT_TOP_OF_PAGE.
"LIST HEADING LINE: TYPE H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-INFO = '입고현황 조회'.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
"STATUS LINE: TYPE S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = '입고일자'.
IF S_BUDAT-HIGH IS INITIAL.
LS_LINE-INFO = S_BUDAT-LOW.
ELSE.
CONCATENATE S_BUDAT-LOW '~' S_BUDAT-HIGH
INTO LS_LINE-INFO.
ENDIF.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = 'PLANT'.
IF S_WERKS-HIGH IS INITIAL.
LS_LINE-INFO = S_WERKS-LOW.
ELSE.
CONCATENATE S_WERKS-LOW '~' S_WERKS-HIGH
INTO LS_LINE-INFO.
ENDIF.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
ENDFORM. " ALV04_COMMENT
*----------------------------------------------------------------------*
* FORM ALV05_EVENT
*----------------------------------------------------------------------*
FORM ALV05_EVENT CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS: GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME
VALUE 'TOP_OF_PAGE',
GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME
VALUE 'END_OF_PAGE'.
* ***********************************************************************
* EVENT : TOP_OF_PAGE
* ***********************************************************************
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
* ***********************************************************************
* EVENT : END_OF_PAGE
* ***********************************************************************
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
ENDFORM.
*----------------------------------------------------------------------*
* FORM ALV06_LAYPUT
*----------------------------------------------------------------------*
FORM ALV06_LAYPUT USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
LS_LAYOUT-ZEBRA = 'X'.
LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
LS_LAYOUT-BOX_FIELDNAME = SPACE.
LS_LAYOUT-NO_INPUT = 'X'.
LS_LAYOUT-NO_VLINE = ' '.
LS_LAYOUT-NO_COLHEAD = ' '.
LS_LAYOUT-LIGHTS_CONDENSE = 'X'.
LS_LAYOUT-GROUP_BUTTONS = SPACE.
ENDFORM. " ALV06_LAYPUT
*----------------------------------------------------------------------*
* FORM TOP_OF_PAGE
*----------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
WRITE: SY-DATUM, 'PAGE NO', SY-PAGNO LEFT-JUSTIFIED.
ENDFORM.
*----------------------------------------------------------------------*
* FORM TOP_OF_PAGE
*----------------------------------------------------------------------*
FORM END_OF_PAGE.
WRITE AT (SY-LINSZ) SY-PAGNO CENTERED.
ENDFORM.