Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
" DISP_DATA
Note: When we want all the fields from a table, then we use STRUCTURE
Page 1
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
OUTPUT
Page 2
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
" DISP_DATA
Page 3
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&--------------------------------------------------------------------*
*&
Form CREATE_FCAT
*&--------------------------------------------------------------------FORM CREATE_FCAT .
WA_FCAT-COL_POS = '1' .
WA_FCAT-FIELDNAME = 'MATNR' .
WA_FCAT-TABNAME = 'I_MARA' .
WA_FCAT-REF_FIELDNAME = 'MATNR' .
WA_FCAT-REF_TABNAME = 'MARA' .
* WA_FCAT-SELTEXT_M = 'MATERIAL.NO' .
* WA_FCAT-KEY = 'X' .
WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'2' .
= 'MTART' .
'I_MARA' .
= 'MATERIAL.TYPE' .
I_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
WA_FCAT-EMPHASIZE
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'3' .
= 'MBRSH' .
'I_MARA' .
= 'IND.SECTOR' .
= 'C601'.
I_FCAT .
WA_FCAT-COL_POS = '4' .
WA_FCAT-FIELDNAME = 'MEINS' .
WA_FCAT-TABNAME = 'I_MARA' .
WA_FCAT-SELTEXT_M = 'MATERIAL.UNITS' .
WA_FCAT-EDIT = 'X' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
ENDFORM.
" CREATE_FCAT
Note: When we want limited fields from a table, then we use fieldcatelog
Page 4
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
OUTPUT
Page 5
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
Page 6
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&---------------------------------------------------------------------*
*&
Form CREATE_FCAT_MERGE
*&---------------------------------------------------------------------*
FORM CREATE_FCAT_MERGE .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME
= SY-REPID
I_STRUCTURE_NAME = 'MARA'
I_INCLNAME
= SY-REPID
CHANGING
CT_FIELDCAT
= I_FCAT.
LOOP AT I_FCAT INTO WA_FCAT .
WA_FCAT-NO_OUT = 'X' .
IF WA_FCAT-FIELDNAME = 'MATNR' OR
WA_FCAT-FIELDNAME = 'MTART' OR
WA_FCAT-FIELDNAME = 'MBRSH' OR
WA_FCAT-FIELDNAME = 'MEINS' .
WA_FCAT-NO_OUT = ' ' .
ENDIF .
MODIFY I_FCAT FROM WA_FCAT INDEX SY-TABIX .
ENDLOOP .
ENDFORM.
" CREATE_FCAT_MERGE
Page 7
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
SLIS .
TYPES : BEGIN
MATNR
MTART
MBRSH
MEINS
END OF
DATA
DATA
DATA
DATA
DATA
OF TY_MARA,
TYPE MARA-MATNR,
TYPE MARA-MTART,
TYPE MARA-MBRSH,
TYPE MARA-MEINS,
TY_MARA.
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM CREATE_FCAT .
PERFORM DESIGN_LAYOUT .
PERFORM DISP_DATA .
*&--------------------------------------------------------------------*&
Form GET_DATA
*&--------------------------------------------------------------------FORM GET_DATA .
SELECT MATNR MTART MBRSH MEINS FROM MARA
INTO TABLE I_MARA
UP TO 100 ROWS .
ENDFORM.
"GET_DATA
*&--------------------------------------------------------------------*&
Form DISP_DATA
*&--------------------------------------------------------------------FORM DISP_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT
= WA_LAYOUT
IT_FIELDCAT
= I_FCAT
TABLES
T_OUTTAB
= I_MARA.
ENDFORM.
"DISP_DATA
Page 8
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&--------------------------------------------------------------------*&
Form CREATE_FCAT
*&--------------------------------------------------------------------FORM CREATE_FCAT .
WA_FCAT-COL_POS = '1' .
WA_FCAT-FIELDNAME = 'MATNR' .
WA_FCAT-TABNAME = 'I_MARA' .
WA_FCAT-REF_FIELDNAME = 'MATNR' .
WA_FCAT-REF_TABNAME = 'MARA' .
WA_FCAT-SELTEXT_M = 'MATERIAL.NO' .
WA_FCAT-KEY = 'X' .
WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'2' .
= 'MTART' .
'I_MARA' .
= 'MATERIAL.TYPE' .
I_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
WA_FCAT-EMPHASIZE
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'3' .
= 'MBRSH' .
'I_MARA' .
= 'IND.SECOT' .
= 'C601'.
I_FCAT .
WA_FCAT-COL_POS = '4' .
WA_FCAT-FIELDNAME = 'MEINS' .
WA_FCAT-TABNAME = 'I_MARA' .
WA_FCAT-SELTEXT_M = 'MATERIAL.UNITS' .
WA_FCAT-EDIT = 'X' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
ENDFORM.
"CREATE_FCAT
Page 9
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&--------------------------------------------------------------------*&
Form DESIGN_LAYOUT
*&--------------------------------------------------------------------*
text
*---------------------------------------------------------------------* -- p1
text
* -- p2
text
*---------------------------------------------------------------------FORM DESIGN_LAYOUT .
WA_LAYOUT-ZEBRA = 'X' .
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
WA_LAYOUT-EDIT = 'X' .
WA_LAYOUT-NO_VLINE = 'X' .
WA_LAYOUT-NO_HLINE = 'X' .
ENDFORM.
Note: When we want ALV with ZEBRA colors, EDIT functionality etc..then use
LAYOUT
Page 10
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*ALV
DATA
DATA
DATA
DATA
DATA
DECLARATIONS
: I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
: WA_FCAT TYPE SLIS_FIELDCAT_ALV .
: I_SORT TYPE SLIS_T_SORTINFO_ALV .
: WA_SORT LIKE LINE OF I_SORT .
: V_POS TYPE I .
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM CREATE_FCAT .
PERFORM CALC_SUBTOTALS.
PERFORM DISPLAY_DATA .
END-OF-SELECTION .
*&---------------------------------------------------------------------*
*&
Form get_data
*&---------------------------------------------------------------------*
FORM GET_DATA .
SELECT * FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE I_VBAP
UP TO 100 ROWS .
ENDFORM.
" get_data
*&---------------------------------------------------------------------*
*&
Form create_fcat
*&---------------------------------------------------------------------*
FORM CREATE_FCAT .
V_POS = 1 .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
V_POS.
= 'VBELN' .
= 'Salesdoc.NO' .
I_FCAT .
Page 11
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
V_POS = V_POS + 1.
WA_FCAT-COL_POS = V_POS .
WA_FCAT-FIELDNAME = 'POSNR' .
WA_FCAT-SELTEXT_M = 'Itemno' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
V_POS = V_POS + 1.
WA_FCAT-COL_POS = V_POS .
WA_FCAT-FIELDNAME = 'MATNR' .
WA_FCAT-SELTEXT_M = 'Material NO' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
V_POS = V_POS + 1.
WA_FCAT-COL_POS = V_POS .
WA_FCAT-FIELDNAME = 'NETPR' .
WA_FCAT-SELTEXT_M = 'Netprice' .
WA_FCAT-DO_SUM = 'X' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
ENDFORM.
" create_fcat
*&---------------------------------------------------------------------*
*&
Form display_data
*&---------------------------------------------------------------------*
FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT
= I_FCAT
IT_SORT
= I_SORT
TABLES
T_OUTTAB
= I_VBAP.
ENDFORM.
" display_data
Page 12
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&---------------------------------------------------------------------*
*&
Form CALC_SUBTOTALS
*&---------------------------------------------------------------------*
FORM CALC_SUBTOTALS .
WA_SORT-FIELDNAME = 'VBELN' .
WA_SORT-UP = 'X' .
WA_SORT-SUBTOT = 'X' .
APPEND WA_SORT TO I_SORT .
ENDFORM.
" CALC_SUBTOTALS
Output :
Page 13
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM CREATE_FCAT .
PERFORM GET_EVENTS .
PERFORM DISPLAY_DATA .
END-OF-SELECTION .
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
FORM GET_DATA .
SELECT * FROM MARA
INTO TABLE I_MARA
UP TO 100 ROWS .
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT
= I_FCAT
IT_EVENTS
= I_EVENTS
TABLES
T_OUTTAB
= I_MARA.
ENDFORM.
" DISPLAY_DATA
Page 14
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&---------------------------------------------------------------------*
*&
Form CREATE_FCAT
*&---------------------------------------------------------------------*
FORM CREATE_FCAT .
V_POS = 1 .
WA_FCAT-COL_POS = V_POS.
WA_FCAT-FIELDNAME = 'MATNR' .
WA_FCAT-SELTEXT_M = 'Material.NO' .
WA_FCAT-HOTSPOT = 'X' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
V_POS = V_POS + 1.
WA_FCAT-COL_POS = V_POS .
WA_FCAT-FIELDNAME = 'MTART' .
WA_FCAT-SELTEXT_M = 'Material.Type' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
V_POS = V_POS + 1.
WA_FCAT-COL_POS = V_POS .
WA_FCAT-FIELDNAME = 'MBRSH' .
WA_FCAT-SELTEXT_M = 'Ind.Sector' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
V_POS = V_POS + 1.
WA_FCAT-COL_POS = V_POS .
WA_FCAT-FIELDNAME = 'MATKL' .
WA_FCAT-SELTEXT_M = 'Mat.Grp' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
V_POS = V_POS + 1.
WA_FCAT-COL_POS = V_POS .
WA_FCAT-FIELDNAME = 'MEINS' .
WA_FCAT-SELTEXT_M = 'Units' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
ENDFORM.
" CREATE_FCAT
*&---------------------------------------------------------------------*
*&
Form GET_EVENTS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
Page 15
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
FORM GET_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
* EXPORTING
*
I_LIST_TYPE
= 0
IMPORTING
ET_EVENTS
= I_EVENTS .
READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY NAME = 'TOP_OF_PAGE' .
WA_EVENTS-FORM = 'FORM_TOP_OF_PAGE' .
MODIFY I_EVENTS FROM WA_EVENTS INDEX SY-TABIX .
***********END OF LIST
READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY NAME = 'END_OF_LIST' .
WA_EVENTS-FORM = 'FORM_END_OF_LIST' .
MODIFY I_EVENTS FROM WA_EVENTS INDEX SY-TABIX .
ENDFORM.
" GET_EVENTS
*&---------------------------------------------------------------------*
*&
Form FORM_TOP_OF_PAGE
*&------------------------------------------------------ ---------------*
FORM FORM_TOP_OF_PAGE .
WA_HEADING-TYP = 'H' .
* WA_HEADING-KEY = 'H' .
WA_HEADING-INFO = 'MATERIAL MASTER REPORT' .
APPEND WA_HEADING TO I_HEADING .
WA_HEADING-TYP = 'S' .
WA_HEADING-KEY = 'USERNAME' .
WA_HEADING-INFO = SY-UNAME .
APPEND WA_HEADING TO I_HEADING .
WA_HEADING-TYP = 'A' .
WA_HEADING-KEY = 'DATE' .
WA_HEADING-INFO = SY-DATUM .
APPEND WA_HEADING TO I_HEADING .
"FORM_TOP_OF_PAGE
Page 16
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&---------------------------------------------------------------------*
*&
Form FORM_END_OF_LIST
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM FORM_END_OF_LIST .
REFRESH I_HEADING .
CLEAR WA_HEADING .
WA_HEADING-TYP = 'S' .
WA_HEADINGINFO = 'ALL RIGHTS ARE RESERVED TO THE COMPANY IBM INDIA PVT.LTD' .
APPEND WA_HEADING TO I_HEADING .
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_HEADING
I_END_OF_LIST_GRID = 'X'.
ENDFORM .
"FORM_END_OF_LIST
OUTPUT
Page 17
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
Interactive ALV
TYPE-POOLS : SLIS.
DATA :
DATA :
DATA :
DATA :
WA_VBAP TYPE
WA_VBAK TYPE
DATA
DATA
DATA
DATA
DATA
:
:
:
:
:
VBAP .
VBAK .
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM GET_EVENTS .
PERFORM DISPLAY_DATA .
END-OF-SELECTION .
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
FORM GET_DATA .
SELECT * FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE I_VBAK
UP TO 100 ROWS .
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_STRUCTURE_NAME
= 'VBAK'
IT_EVENTS
= I_EVENTS
TABLES
T_OUTTAB
= I_VBAK.
ENDFORM.
" DISPLAY_DATA
Page 18
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&---------------------------------------------------------------------*
*&
Form GET_EVENTS
*&---------------------------------------------------------------------*
FORM GET_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = I_EVENTS.
READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY NAME = 'USER_COMMAND' .
WA_EVENTS-FORM = 'FORM_USER_COMMAND' .
MODIFY I_EVENTS FROM WA_EVENTS INDEX SY-TABIX .
ENDFORM.
" GET_EVENTS
*&---------------------------------------------------------------------*
*&
Form FORM_USER_COMMAND
*&---------------------------------------------------------------------*
FORM FORM_USER_COMMAND USING UCOMM TYPE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD .
*********************Int ALV REPORT USING SELFIELD-VALUE
*
*
*
*
*
*
V_VBELN = SELFIELD-VALUE .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = V_VBELN
IMPORTING
OUTPUT = V_VBELN.
*
*
*
"FORM_USER_COMMAND
Page 19
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
Hierarchial ALV
TYPE-POOLS : SLIS .
TYPES : BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
VKORG TYPE VBAK-VKORG,
VTWEG TYPE VBAK-VTWEG,
END OF TY_VBAK.
TYPES
: BEGIN OF TY_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
NETWR TYPE VBAP-NETWR,
END OF TY_VBAP.
Page 20
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&---------------------------------------------------------------------*
*&
Form GET_DATA_VBAP
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_DATA_VBAP .
IF I_VBAK IS NOT INITIAL .
SELECT * FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE I_VBAP
FOR ALL ENTRIES IN I_VBAK
WHERE VBELN = I_VBAK-VBELN .
ENDIF .
ENDFORM.
" GET_DATA_VBAP
*&---------------------------------------------------------------------*
*&
Form CREATE_FCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CREATE_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'1' .
= 'VBELN' .
'I_VBAK' .
= 'Doc.NO' .
I_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'2' .
= 'VKORG' .
'I_VBAK' .
= 'SalesOrg' .
I_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'3' .
= 'VTWEG' .
'I_VBAK' .
= 'D.CHANNEL' .
I_FCAT .
Page 21
B A P&W E B D Y N P R O A B A P @ A R J U N
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'4' .
= 'POSNR' .
'I_VBAP' .
= 'ITEM.NO' .
I_FCAT .
WA_FCAT-COL_POS =
WA_FCAT-FIELDNAME
WA_FCAT-TABNAME =
WA_FCAT-SELTEXT_M
APPEND WA_FCAT TO
CLEAR WA_FCAT .
'5' .
= 'MATNR' .
'I_VBAP' .
= 'MAT.NO' .
I_FCAT .
IGROWSOFT
WA_FCAT-COL_POS = '6' .
WA_FCAT-FIELDNAME = 'NETWR' .
WA_FCAT-TABNAME = 'I_VBAP' .
WA_FCAT-SELTEXT_M = 'NET.PRICE' .
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
ENDFORM.
" CREATE_FCAT
*&---------------------------------------------------------------------*
*&
Form CREATE_HIERARCHY
*&---------------------------------------------------------------------*
FORM CREATE_HIERARCHY .
KEY-HEADER01 = 'VBELN' .
KEY-ITEM01
= 'VBELN' .
ENDFORM.
" CREATE_HIERARCHY
*&-------------------------------------------------------- -------------*
*&
Form DISPLAY_ALV
*&---------------------------------------------------------------------*
FORM DISPLAY_ALV .
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT
= I_FCAT
I_TABNAME_HEADER
= 'I_VBAK'
I_TABNAME_ITEM
= 'I_VBAP'
IS_KEYINFO
= KEY
TABLES
T_OUTTAB_HEADER
= I_VBAK
T_OUTTAB_ITEM
= I_VBAP.
ENDFORM.
" DISPLAY_ALV
Page 22
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
Page 23
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
Blocked ALV
TYPE-POOLS : SLIS .
DATA: BEGIN OF I_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MBRSH LIKE MARA-MBRSH,
END OF I_MARA.
DATA: BEGIN OF I_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
END OF I_MAKT.
DATA: BEGIN OF I_MARC OCCURS 0,
MATNR LIKE MARC-MATNR,
WERKS LIKE MARC-WERKS,
BWTTY LIKE MARC-BWTTY,
END OF I_MARC.
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV .
DATA : I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
DATA : I_EVENTS TYPE SLIS_T_EVENT .
START-OF-SELECTION .
PERFORM INIT_BLOCKED_ALV .
PERFORM APPEND_BLOCK1.
PERFORM APPEND_BLOCK2.
PERFORM APPEND_BLOCK3.
PERFORM DISPLAY_BLOCKED_ALV .
*&---------------------------------------------------------------------*
*&
Form INIT_BLOCKED_ALV
*&---------------------------------------------------------------------*
FORM INIT_BLOCKED_ALV .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID.
ENDFORM.
" INIT_BLOCKED_ALV
Page 24
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&-------------------------------------------------------------------- -*
*&
Form APPEND_BLOCK1
*&---------------------------------------------------------------------*
FORM APPEND_BLOCK1 .
SELECT * FROM MARA
INTO CORRESPONDING FIELDS OF TABLE I_MARA
UP TO 10 ROWS.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME
= SY-REPID
I_INTERNAL_TABNAME = 'I_MARA[]'
I_INCLNAME
= SY-REPID
CHANGING
CT_FIELDCAT
= I_FCAT.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT
= WA_LAYOUT
IT_FIELDCAT = I_FCAT
I_TABNAME
= 'I_MARA'
IT_EVENTS
= I_EVENTS
TABLES
T_OUTTAB
= I_MARA.
ENDFORM.
" APPEND_BLOCK1
*&---------------------------------------------------------------------*
*&
Form APPEND_BLOCK2
*&---------------------------------------------------------------------*
FORM APPEND_BLOCK2 .
IF NOT I_MARA[] IS INITIAL .
SELECT * FROM MAKT
INTO CORRESPONDING FIELDS OF TABLE I_MAKT
FOR ALL ENTRIES IN I_MARA
WHERE MATNR = I_MARA-MATNR .
ENDIF .
REFRESH I_FCAT .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME
= SY-REPID
I_INTERNAL_TABNAME = 'I_MAKT'
I_INCLNAME
= SY-REPID
CHANGING
CT_FIELDCAT
= I_FCAT.
Page 25
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
" APPEND_BLOCK3
FORM DISPLAY_BLOCKED_ALV .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY' .
ENDFORM.
" DISPLAY_BLOCKED_ALV
Page 26
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
:
:
:
:
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM CREATE_FIELDCATELOG .
PERFORM DISP_ALV .
*&--------------------------------------------------------------------**&
Form GET_DATA
*&--------------------------------------------------------------------FORM GET_DATA .
SELECT MATNR
MTART
MBRSH
MEINS
FROM MARA
INTO TABLE I_MARA
WHERE MATNR IN S_MATNR .
ENDFORM.
" GET_DATA
*&--------------------------------------------------------------------*
*&
Form DISP_ALV
*&--------------------------------------------------------------------FORM DISP_ALV .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT
= I_FCAT
TABLES
T_OUTTAB
= I_MARA.
ENDFORM.
" DISP_ALV
Page 27
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&--------------------------------------------------------------------*
*&
Form CREATE_FIELDCATELOG
*&--------------------------------------------------------------------FORM CREATE_FIELDCATELOG .
PERFORM CREATE_FCAT USING '1' 'MATNR' 'I_MARA' 'MATERIALNO' 'X' 'MA
RA' 'MATNR'.
PERFORM CREATE_FCAT USING '2' 'MTART' 'I_MARA' 'MATERIALTYPE' '' ''
''.
PERFORM CREATE_FCAT USING '3' 'MBRSH' 'I_MARA' 'INDSECTOR' '' '' ''
.
PERFORM CREATE_FCAT USING '4' 'MEINS' 'I_MARA' 'UNITS' '' '' ''.
ENDFORM
.
"CREATE_FIELDCATELOG
*&--------------------------------------------------------------------*
*&
Form CREATE_FCAT
*&--------------------------------------------------------------------FORM CREATE_FCAT USING F_POS
F_FNAME
F_ITABNAME
F_SELTEXT
F_KEY
F_REFTABNAME
F_REFFIELDNAME.
WA_FCAT-COL_POS = F_POS .
WA_FCAT-FIELDNAME = F_FNAME .
WA_FCAT-TABNAME = F_ITABNAME .
WA_FCAT-SELTEXT_M = F_SELTEXT .
WA_FCAT-KEY = F_KEY.
WA_FCAT-REF_TABNAME = F_REFTABNAME .
WA_FCAT-REF_FIELDNAME = F_REFFIELDNAME.
APPEND WA_FCAT TO I_FCAT .
CLEAR WA_FCAT .
ENDFORM.
" CREATE_FCAT
Page 28
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
:
:
:
:
:
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM GET_EVENTS .
PERFORM DISPLAY_DATA .
END-OF-SELECTION .
*&--------------------------------------------------------------------*
*&
Form GET_DATA
*&--------------------------------------------------------------------FORM GET_DATA .
SELECT * FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE I_VBAK
UP TO 100 ROWS .
ENDFORM.
" GET_DATA
Page 29
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
*&--------------------------------------------------------------------*
*&
Form DISPLAY_DATA
*&--------------------------------------------------------------------FORM DISPLAY_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_STRUCTURE_NAME
= 'VBAK'
IT_EVENTS
= I_EVENTS
TABLES
T_OUTTAB
= I_VBAK.
ENDFORM.
" DISPLAY_DATA
*&--------------------------------------------------------------------*
*&
Form GET_EVENTS
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------FORM GET_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = I_EVENTS.
READ TABLE I_EVENTS INTO WA_EVENTS WITH KEY NAME = 'USER_COMMAND' .
WA_EVENTS-FORM = 'FORM_USER_COMMAND' .
MODIFY I_EVENTS FROM WA_EVENTS INDEX SY-TABIX .
ENDFORM.
" GET_EVENTS
*&--------------------------------------------------------------------*
*&
Form FORM_USER_COMMAND
*&--------------------------------------------------------------------FORM FORM_USER_COMMAND USING UCOMM TYPE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD .
SET PARAMETER ID 'AUN' FIELD SELFIELD-VALUE.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN .
ENDFORM .
"FORM_USER_COMMAND
Page 30
B A P&W E B D Y N P R O A B A P @ A R J U N
IGROWSOFT
Page 31