Вы находитесь на странице: 1из 3

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

*& Report ZOOALV_STR


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZOOALV_FCAT_MERGE.
TYPES : BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR,
MTART TYPE MARA-MTART,
MBRSH TYPE MARA-MBRSH,
MEINS TYPE MARA-MEINS,
END OF TY_MARA.
DATA
DATA
DATA
DATA
DATA
DATA

:
:
:
:
:
:

ALV_CONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.


ALV_GRID TYPE REF TO CL_GUI_ALV_GRID.
I_MARA TYPE TABLE OF TY_MARA .
WA_MARA TYPE TY_MARA .
I_FCAT TYPE LVC_T_FCAT .
WA_FCAT LIKE LINE OF I_FCAT .

****STEP2 : Create screen 100.


START-OF-SELECTION .
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
perform create_obj .
perform get_data.
* PERFORM CREATE_FCAT .
PERFORM CREATE_FCAT_MERGE .
perform display_alv .
ENDMODULE.
" STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
Form create_obj
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM create_obj .
CREATE OBJECT ALV_CONT
EXPORTING
CONTAINER_NAME
= 'ALV_CONT' .
CREATE OBJECT ALV_GRID
EXPORTING
I_PARENT
= ALV_CONT. "GIVE CONTAINER INSTANCE
ENDFORM.
" create_obj
*&---------------------------------------------------------------------*
*&
Form get_data

*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data .
SELECT * FROM MARA
INTO CORRESPONDING FIELDS OF TABLE I_MARA
UP TO 100 ROWS .
ENDFORM.
" get_data
*&---------------------------------------------------------------------*
*&
Form display_alv
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM display_alv .
CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
CHANGING
IT_OUTTAB
= I_MARA
IT_FIELDCATALOG = I_FCAT.
ENDFORM.
" display_alv
*&---------------------------------------------------------------------*
*&
Form CREATE_FCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CREATE_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SCRTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .

'1' .
= 'MATNR' .
'I_MARA' .
= 'MATERIALNO' .
I_FCAT .

WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SCRTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .

'2' .
= 'MTART' .
'I_MARA' .
= 'MATERIALTYPE' .
I_FCAT .

WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SCRTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .

'3' .
= 'MBRSH' .
'I_MARA' .
= 'IND.SCET' .
I_FCAT .

WA_FCAT-COL_POS = '4' .
WA_FCAT-FIELDNAME = 'MEINS' .
WA_FCAT-TABNAME = 'I_MARA' .

WA_FCAT-SCRTEXT_M = 'UNITS' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
ENDFORM.
" CREATE_FCAT
*&---------------------------------------------------------------------*
*&
Form CREATE_FCAT_MERGE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CREATE_FCAT_MERGE .
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'MARA'
CHANGING
CT_FIELDCAT
= I_FCAT.
LOOP AT I_FCAT INTO WA_FCAT .
WA_FCAT-NO_OUT = 'X' .
CASE WA_FCAT-FIELDNAME .
WHEN 'MATNR' OR 'MTART' OR 'MBRSH' OR 'MEINS' .
WA_FCAT-NO_OUT = '' .
ENDCASE .
MODIFY I_FCAT FROM WA_FCAT INDEX SY-TABIX .
ENDLOOP.

ENDFORM.

" CREATE_FCAT_MERGE

Вам также может понравиться