Sei sulla pagina 1di 31

A

B A P&W E B D Y N P R O A B A P @ A R J U N

IGROWSOFT

ALV REPORT with structure


1)Business Req: Develop a Material master ALV Report to display all fields
TABLES MARA .
DATA : I_MARA TYPE TABLE OF MARA .
DATA : WA_MARA TYPE MARA .

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR .


START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM DISP_DATA .
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
FORM GET_DATA .
SELECT * FROM MARA
INTO TABLE I_MARA
WHERE MATNR IN S_MATNR .
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form DISP_DATA
*&---------------------------------------------------------------------*
FORM DISP_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_STRUCTURE_NAME
= 'MARA'
TABLES
T_OUTTAB
= I_MARA.
ENDFORM.

" DISP_DATA

Note: When we want all the fields from a table, then we use STRUCTURE

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 2

B A P&W E B D Y N P R O A B A P @ A R J U N

IGROWSOFT

ALV REPORT with Fieldcatelog


TYPE-POOLS : SLIS .
TABLES MARA .
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 : I_MARA TYPE TABLE OF TY_MARA .
DATA : WA_MARA TYPE TY_MARA .
DATA : I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
DATA : WA_FCAT LIKE LINE OF I_FCAT .
*DATA : WA_FCAT TYPE SLIS_FIELDCAT_ALV .
SELECT-OPTIONS : S_MATNR FOR MARA-MATNR .
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM CREATE_FCAT .
PERFORM DISP_DATA .
*&--------------------------------------------------------------------*
*&
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_DATA
*&-------------------------------------------------------------------FORM DISP_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM
= SY-REPID
*
I_STRUCTURE_NAME
= 'MARA'
IT_FIELDCAT
= I_FCAT
TABLES
T_OUTTAB
= I_MARA .
ENDFORM.

" DISP_DATA

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 5

B A P&W E B D Y N P R O A B A P @ A R J U N

IGROWSOFT

ALV REPORT with Fieldcatelog_Merge


TYPE-POOLS : SLIS .
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 : I_MARA TYPE TABLE OF TY_MARA .
DATA : WA_MARA TYPE TY_MARA .
DATA : I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
DATA : WA_FCAT LIKE LINE OF I_FCAT .
*DATA : WA_FCAT TYPE SLIS_FIELDCAT_ALV .
START-OF-SELECTION .
PERFORM GET_DATA .
PERFORM CREATE_FCAT_MERGE .
PERFORM DISP_DATA .
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT MATNR MTART MBRSH MEINS FROM MARA
INTO TABLE I_MARA
UP TO 100 ROWS .
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form DISP_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM DISP_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT
= I_FCAT
TABLES
T_OUTTAB
= I_MARA.
ENDFORM.
" DISP_DATA

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

Note: When we want fieldcatelog to be generated automatically, then we use


REUSE_FIELDCATELOG_MERGE.

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 7

B A P&W E B D Y N P R O A B A P @ A R J U N

IGROWSOFT

ALV REPORT with Layout Options


TYPE-POOLS

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.

I_MARA TYPE TABLE OF TY_MARA .


WA_MARA TYPE TY_MARA .
I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
WA_FCAT LIKE LINE OF I_FCAT .
WA_LAYOUT TYPE SLIS_LAYOUT_ALV .

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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 REPORT with GrandTotals&SubTotals


TYPE-POOLS : SLIS .
TYPES : BEGIN OF TY_VBAP,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
NETPR TYPE VBAP-NETPR,
END OF TY_VBAP.
DATA : I_VBAP TYPE TABLE OF TY_VBAP .
DATA : WA_VBAP TYPE
TY_VBAP .

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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 :

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 13

B A P&W E B D Y N P R O A B A P @ A R J U N

IGROWSOFT

ALV REPORT with TOP-OF-PAGE/EOL/LOGO


TYPE-POOLS : SLIS .
*DATA DECLARAATIONS
DATA : I_MARA TYPE TABLE OF MARA .
DATA : WA_MARA TYPE MARA .
*ALV DECLARATIONS
DATA : I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
DATA : WA_FCAT TYPE SLIS_FIELDCAT_ALV .
DATA : V_POS TYPE I .
DATA : I_EVENTS TYPE SLIS_T_EVENT .
DATA : WA_EVENTS LIKE LINE OF I_EVENTS .
DATA : I_HEADING TYPE SLIS_T_LISTHEADER .
DATA : WA_HEADING LIKE LINE OF I_HEADING .

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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 .

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'


EXPORTING
IT_LIST_COMMENTARY
= I_HEADING
I_LOGO
= 'ARJUN'
*
I_END_OF_LIST_GRID
=
*
I_ALV_FORM
=
.
ENDFORM .

"FORM_TOP_OF_PAGE

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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 :

I_VBAP TYPE TABLE OF VBAP .


I_VBAK TYPE TABLE OF VBAK .

DATA :
DATA :

WA_VBAP TYPE
WA_VBAK TYPE

DATA
DATA
DATA
DATA
DATA

:
:
:
:
:

VBAP .
VBAK .

I_EVENTS TYPE SLIS_T_EVENT .


WA_EVENTS LIKE LINE OF I_EVENTS .
V_VBELN TYPE VBAK-VBELN .
I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
WA_FCAT LIKE LINE OF I_FCAT.

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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.

*
*
*

SELECT * FROM VBAP


INTO CORRESPONDING FIELDS OF TABLE I_VBAP
WHERE VBELN = V_VBELN .

*********************INT ALV REPORT USING READ TABLE(SELFIELD-TABINDEX)


READ TABLE I_VBAK INTO WA_VBAK
INDEX SELFIELD-TABINDEX .
SELECT * FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE I_VBAP
WHERE VBELN = WA_VBAK-VBELN .
*DISPLAY SECONADRY ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_STRUCTURE_NAME
= 'VBAP'
TABLES
T_OUTTAB
= I_VBAP.
ENDFORM .

"FORM_USER_COMMAND

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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.

DATA : I_VBAK TYPE TABLE OF TY_VBAK .


DATA : I_VBAP TYPE TABLE OF TY_VBAP.
DATA : WA_VBAK TYPE TY_VBAK.
DATA : WA_VBAP TYPE TY_VBAP.
DATA : I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
DATA : WA_FCAT LIKE LINE OF I_FCAT .
DATA : KEY TYPE SLIS_KEYINFO_ALV .
START-OF-SELECTION .
PERFORM GET_DATA_VBAK .
PERFORM GET_DATA_VBAP .
PERFORM CREATE_FCAT.
PERFORM CREATE_HIERARCHY.
PERFORM DISPLAY_ALV .
*&---------------------------------------------------------------------*
*&
Form GET_DATA_VBAK
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_DATA_VBAK .
SELECT * FROM VBAK
INTO CORRESPONDING FIELDS OF TABLE I_VBAK
UP TO 100 ROWS .
ENDFORM.
" GET_DATA_VBAK

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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 .

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 22

B A P&W E B D Y N P R O A B A P @ A R J U N

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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.

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 25

B A P&W E B D Y N P R O A B A P @ A R J U N

IGROWSOFT

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'


EXPORTING
IS_LAYOUT
= WA_LAYOUT
IT_FIELDCAT = I_FCAT
I_TABNAME
= 'I_MAKT'
IT_EVENTS
= I_EVENTS
TABLES
T_OUTTAB
= I_MAKT.
ENDFORM.
" APPEND_BLOCK2
*&---------------------------------------------------------------------*
*&
Form APPEND_BLOCK3
*&---------------------------------------------------------------------*
FORM APPEND_BLOCK3 .
IF NOT I_MARA[] IS INITIAL .
SELECT * FROM MARC
INTO CORRESPONDING FIELDS OF TABLE I_MARC
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_MARC'
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_MARC'
IT_EVENTS
= I_EVENTS
TABLES
T_OUTTAB
= I_MARC.
ENDFORM.

" APPEND_BLOCK3

FORM DISPLAY_BLOCKED_ALV .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY' .
ENDFORM.

" DISPLAY_BLOCKED_ALV

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 26

B A P&W E B D Y N P R O A B A P @ A R J U N

IGROWSOFT

A Real time report on ALV with fieldcatelog


TYPE-POOLS : SLIS .
TABLES : MARA.
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

:
:
:
:

I_MARA TYPE TABLE OF TY_MARA .


WA_MARA TYPE TY_MARA .
I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
WA_FCAT LIKE LINE OF I_FCAT.

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR .

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 28

B A P&W E B D Y N P R O A B A P @ A R J U N

IGROWSOFT

A Real time INT ALV Report


Business Req:Develop a Int Report for sales order.
On click on sales order No, display sales order transaction with
details
TYPE-POOLS : SLIS.
DATA : I_VBAK TYPE TABLE OF VBAK .
DATA : WA_VBAK TYPE VBAK .
DATA
DATA
DATA
DATA
DATA

:
:
:
:
:

I_EVENTS TYPE SLIS_T_EVENT .


WA_EVENTS LIKE LINE OF I_EVENTS .
V_VBELN TYPE VBAK-VBELN .
I_FCAT TYPE SLIS_T_FIELDCAT_ALV .
WA_FCAT LIKE LINE OF I_FCAT.

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

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

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 30

B A P&W E B D Y N P R O A B A P @ A R J U N

IGROWSOFT

ALV REPORT with GrandTotals&SubTotals


Already discussed.

AR J U N.LE ARN R E AL T I ME SC E N ARIOS DON E B Y ME

Page 31

Potrebbero piacerti anche