ZSR Alv Layout
ZSR Alv Layout
REPORT ZSR_ALV_LAYOUT
NO STANDARD PAGE HEADING.
TYPE-POOLS: SLIS.
initialization.
* S_MATNR-LOW = '100-100'.
* S_MATNR-HIGH = '100-200'.
* S_MATNR-OPTION = 'BT'.
* S_MATNR-SIGN = 'I'.
* APPEND S_MATNR.
v_7 = 'Summarised Info'.
START-OF-SELECTION.
PERFORM RETRIVE_DATA.
PERFORM FLD_CATALOG.
PERFORM GENARATE_LAYOUT.
PERFORM DO_SORT.
END-OF-SELECTION.
PERFORM DISPLAY_DATA.
*&---------------------------------------------------------------------*
*& Form RETRIVE_DATA
*&---------------------------------------------------------------------*
FORM RETRIVE_DATA .
SELECT A~MATNR
A~MTART
A~MATKL
B~MAKTX
C~WERKS
C~LGORT
C~LABST
INTO TABLE ITAB
FROM MARA AS A
INNER JOIN MAKT AS B
ON B~MATNR = A~MATNR
INNER JOIN MARD AS C
ON C~MATNR = A~MATNR
WHERE A~MATNR IN S_MATNR
AND SPRAS = SY-LANGU.
ENDFORM. " RETRIVE_DATA
*&---------------------------------------------------------------------*
*& Form FLD_CATALOG
*&---------------------------------------------------------------------*
FORM FLD_CATALOG .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = 'ITAB'
* I_STRUCTURE_NAME =
* I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = SY-REPID
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FLDCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE 'ERROR IN FIELDCATALOG MERGE' TYPE 'I'.
ELSE.
LOOP AT IT_FLDCAT INTO WA_FLDCAT.
CASE WA_FLDCAT-fieldname.
WHEN 'WERKS' OR 'LGORT'.
WA_FLDCAT-KEY = SPACE.
WHEN 'LABST'.
WA_FLDCAT-DO_SUM = 'X'.
ENDCASE.
MODIFY IT_FLDCAT FROM WA_FLDCAT.
ENDLOOP.
ENDIF.