Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

alv report program

Former Member
0 Likes
763

can anybody send me a smple of alv report...

Regards,

pandu.

1 ACCEPTED SOLUTION
Read only

former_member198270
Active Contributor
0 Likes
730

hi,

please find thecode

TYPE-POOLS: slis.

DATA: BEGIN OF itab1 OCCURS 0,

vbeln TYPE vbeln,

bstnk TYPE vbak-bstnk,

erdat TYPE vbak-erdat,

kunnr TYPE vbak-kunnr,

END OF itab1.

DATA: BEGIN OF itab2 OCCURS 0,

vbeln TYPE vbeln,

matnr TYPE vbap-matnr,

netpr TYPE vbap-netpr,

kwmeng TYPE vbap-kwmeng,

END OF itab2.

DATA: t_fieldcatalog1 TYPE slis_t_fieldcat_alv.

DATA: t_fieldcatalog2 TYPE slis_t_fieldcat_alv.

DATA: v_repid TYPE syrepid.

v_repid = sy-repid.

  • Get the fieldcatalog1

PERFORM get_fieldcat1.

  • Get the fieldcatalog2

PERFORM get_fieldcat2.

SELECT vbeln bstnk erdat kunnr UP TO 25 ROWS

INTO TABLE itab1

FROM vbak.

SELECT vbeln matnr netpr kwmeng UP TO 25 ROWS

INTO TABLE itab2

FROM vbap.

  • init

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = v_repid.

DATA: s_layout TYPE slis_layout_alv.

DATA: i_tabname TYPE slis_tabname.

DATA: it_events TYPE slis_t_event.

i_tabname = 'ITAB1'.

  • First block

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = s_layout

it_fieldcat = t_fieldcatalog1

i_tabname = i_tabname

it_events = it_events

TABLES

t_outtab = itab1.

  • Second block

i_tabname = 'ITAB2'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = s_layout

it_fieldcat = t_fieldcatalog2

i_tabname = i_tabname

it_events = it_events

TABLES

t_outtab = itab2.

*Display

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

.

----


  • FORM GET_FIELDCAT1 *

----


  • ........ *

----


FORM get_fieldcat1.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'VBELN'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'VBELN'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'BSTNK'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'BSTNK'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'ERDAT'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'ERDAT'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'KUNNR'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'KUNNR'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

ENDFORM. "get_fieldcat1

----


  • FORM GET_FIELDCAT2 *

----


  • ........ *

----


FORM get_fieldcat2.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'VBELN'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'VBELN'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'MATNR'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'MATNR'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'NETPR'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'NETPR'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'KWMENG'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'KWMENG'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

ENDFORM. "get_fieldcat2

One more type of ALV program .

&----


*& Report Z8AS_PROGRAM_ALV

*&

&----


*&

*&

&----


REPORT Z8AS_PROGRAM_ALV.

TABLES : STKO,STPO,MAKT,MAST.

TYPE-POOLS : SLIS.

DATA : BEGIN OF ISTKO OCCURS 0,

STLNR LIKE STKO-STLNR,

DATUV LIKE STKO-DATUV,

MATNR LIKE MAST-MATNR,

BMENG LIKE STKO-BMENG,

BMEIN LIKE STKO-BMEIN,

END OF ISTKO.

DATA : BEGIN OF ISTPO OCCURS 0,

STLNR LIKE STPO-STLNR,

IDNRK LIKE STPO-IDNRK,

MENGE LIKE STPO-MENGE,

MEINS LIKE STPO-MEINS,

MAKTX LIKE MAKT-MAKTX,

END OF ISTPO.

DATA : BEGIN OF IMAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

MAKTX LIKE MAKT-MAKTX,

END OF IMAKT.

DATA : BEGIN OF IMAST OCCURS 0,

MATNR LIKE MAST-MATNR,

STLNR LIKE MAST-STLNR,

END OF IMAST.

DATA : IFIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WFIELDCAT TYPE SLIS_FIELDCAT_ALV,

ILAYOUT TYPE SLIS_LAYOUT_ALV,

IKEYINFO TYPE SLIS_KEYINFO_ALV,

IEVENT TYPE SLIS_T_EVENT,

WEVENT TYPE SLIS_ALV_EVENT.

PARAMETERS : P_NUM TYPE I .

START-OF-SELECTION.

PERFORM GETDATA.

PERFORM GETHEADERMAT.

PERFORM GET_MAT_DESC.

PERFORM BUILD_FCAT_HEAD.

PERFORM BUILD_FCAT_ITEM.

PERFORM BUILD_KEYINFO.

PERFORM BUILD_EVENT_TAB.

PERFORM BUILD_LAYOUT.

PERFORM DISPLAY_DATA.

&----


*& Form GETDATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GETDATA .

SELECT STLNR DATUV BMENG BMEIN INTO CORRESPONDING FIELDS OF TABLE ISTKO

FROM STKO UP TO P_NUM ROWS.

IF NOT ISTKO[] IS INITIAL.

SELECT STLNR IDNRK MENGE MEINS INTO TABLE ISTPO FROM STPO FOR ALL ENTRIES IN ISTKO

WHERE STLNR = ISTKO-STLNR AND POSTP = 'L'.

ENDIF.

ENDFORM. " GETDATA

&----


*& Form BUILD_FCAT_HEAD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FCAT_HEAD .

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'STLNR'.

WFIELDCAT-SELTEXT_L = 'BOM no'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'DATUV'.

WFIELDCAT-SELTEXT_L = 'BOM date'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'MATNR'.

WFIELDCAT-SELTEXT_L = 'Header mat no'.

WFIELDCAT-OUTPUTLEN = 18.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'BMENG'.

WFIELDCAT-SELTEXT_L = 'Base qty'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'BMEIN'.

WFIELDCAT-SELTEXT_L = 'UOM'.

WFIELDCAT-OUTPUTLEN = 3.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

ENDFORM. " BUILD_FCAT_HEAD

&----


*& Form BUILD_FCAT_ITEM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FCAT_ITEM .

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'IDNRK'.

WFIELDCAT-SELTEXT_L = 'Material no'.

*WFIELDCAT-HOTSPOT = 'X'.

WFIELDCAT-OUTPUTLEN = 18.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'MAKTX'.

WFIELDCAT-SELTEXT_L = 'Material desc'.

WFIELDCAT-JUST = 'C'.

WFIELDCAT-OUTPUTLEN = 30.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'MENGE'.

WFIELDCAT-SELTEXT_L = 'Item qty'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'MEINS'.

WFIELDCAT-SELTEXT_L = 'UOM'.

WFIELDCAT-OUTPUTLEN = 3.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

ENDFORM. " BUILD_FCAT_ITEM

&----


*& Form BUILD_KEYINFO

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_KEYINFO .

IKEYINFO-HEADER01 = 'STLNR'.

IKEYINFO-ITEM01 = 'STLNR'.

ENDFORM. " BUILD_KEYINFO

&----


*& Form DISPLAY_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_DATA .

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'USER_COM'

IS_LAYOUT = ILAYOUT

IT_FIELDCAT = IFIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = IEVENT[]

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = 'ISTKO'

I_TABNAME_ITEM = 'ISTPO'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

IS_KEYINFO = IKEYINFO

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB_HEADER = ISTKO

T_OUTTAB_ITEM = ISTPO

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " DISPLAY_DATA

&----


*& Form GET_MAT_DESC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_MAT_DESC .

IF NOT ISTPO[] IS INITIAL.

SELECT MATNR MAKTX INTO TABLE IMAKT FROM MAKT FOR ALL ENTRIES IN ISTPO

WHERE MATNR = ISTPO-IDNRK.

ENDIF.

LOOP AT ISTPO.

READ TABLE IMAKT WITH KEY MATNR = ISTPO-IDNRK.

IF SY-SUBRC = 0.

ISTPO-MAKTX = IMAKT-MAKTX.

ENDIF.

MODIFY ISTPO.

ENDLOOP.

ENDFORM. " GET_MAT_DESC

&----


*& Form BUILD_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_LAYOUT .

ILAYOUT-ZEBRA = 'X'.

ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.

ENDFORM. " BUILD_LAYOUT

*FORM USER_COM USING PUCOM LIKE SY-UCOMM PSELFIELD TYPE SLIS_SELFIELD.

*

*CASE PUCOM.

*WHEN '&IC1'.

  • SET PARAMETER ID 'MAT' FIELD PSELFIELD-VALUE.

  • CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

*ENDCASE.

*

*ENDFORM.

&----


*& Form BUILD_EVENT_TAB

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_EVENT_TAB .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = IEVENT

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE IEVENT INTO WEVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC = 0.

WEVENT-FORM = 'TOPOFPAGE'.

MODIFY IEVENT FROM WEVENT INDEX SY-TABIX.

ENDIF.

ENDFORM. " BUILD_EVENT_TAB

&----


*& Form TOPOFPAGE

&----


  • text

----


FORM TOPOFPAGE.

DATA : ILISTHEAD TYPE SLIS_T_LISTHEADER,

WLISTHEAD TYPE SLIS_LISTHEADER.

WLISTHEAD-INFO = 'Its a test hierarchical sequential alv dispaly'.

WLISTHEAD-TYP = 'H'.

APPEND WLISTHEAD TO ILISTHEAD.

WLISTHEAD-INFO = 'hellozzzz'.

WLISTHEAD-TYP = 'S'.

APPEND WLISTHEAD TO ILISTHEAD.

WLISTHEAD-INFO = 'Action'.

WLISTHEAD-TYP = 'A'.

APPEND WLISTHEAD TO ILISTHEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = ILISTHEAD

  • I_LOGO = ''

  • I_END_OF_LIST_GRID =

.

ENDFORM.

&----


*& Form GETHEADERMAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GETHEADERMAT .

IF NOT ISTKO[] IS INITIAL.

SELECT MATNR STLNR INTO TABLE IMAST FROM MAST FOR ALL ENTRIES IN ISTKO

WHERE STLNR = ISTKO-STLNR.

ENDIF.

LOOP AT ISTKO.

READ TABLE IMAST WITH KEY STLNR = ISTKO-STLNR.

IF SY-SUBRC = 0.

ISTKO-MATNR = IMAST-MATNR.

ENDIF.

MODIFY ISTKO.

ENDLOOP.

ENDFORM. " GETHEADERMAT

Reward Points if helpful .

Regards,

Amber S

Message was edited by:

Amber S

6 REPLIES 6
Read only

Former Member
0 Likes
730

Hi,

Go to SE38 and search for programs starting with BCALV*

you will get all the ALV programs

Asha

Read only

Former Member
0 Likes
730

HI,

see this example.

REPORT ZBHALV_LIST_GRID2.

TABLES:MARA.

DATA:BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

ERNAM LIKE MARA-ERNAM,

MBRSH LIKE MARA-MBRSH,

END OF ITAB.

TYPE-POOLS:SLIS.

DATA:AFIELD TYPE SLIS_FIELDCAT_ALV.

DATA:FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV.

DATA:FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

DATA:EVE TYPE SLIS_T_EVENT WITH HEADER LINE.

DATA:HEAD TYPE SLIS_T_LISTHEADER WITH HEADER LINE.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME = 'ITAB'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = FIELDCAT1.

CLEAR AFIELD.

AFIELD-Col_pos = 1.

AFIELD-fieldname = 'MATNR'.

AFIELD-KEY = 'X'.

APPEND AFIELD TO FIELDCAT.

CLEAR FIELDCAT.

CLEAR AFIELD.

AFIELD-Col_pos = 2.

AFIELD-fieldname = 'ERSDA'.

AFIELD-KEY = 'X'.

APPEND AFIELD TO FIELDCAT.

CLEAR FIELDCAT.

CLEAR AFIELD.

AFIELD-Col_pos = 3.

AFIELD-fieldname = 'ERNAM'.

APPEND AFIELD TO FIELDCAT.

CLEAR FIELDCAT.

CLEAR AFIELD.

AFIELD-Col_pos = 4.

AFIELD-fieldname = 'MBRSH'.

APPEND AFIELD TO FIELDCAT.

CLEAR FIELDCAT.

EVE-NAME = 'TOP_OF_PAGE'.

EVE-FORM = 'HEADER'.

APPEND EVE.

CLEAR EVE.

EVE-NAME = 'END_OF_LIST'.

EVE-FORM = 'LISTEND'.

APPEND EVE.

CLEAR EVE.

EVE-NAME = 'TOP_OF_LIST'.

EVE-FORM = 'LISTTOP'.

APPEND EVE.

CLEAR EVE.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB UP TO 20 ROWS

.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

  • I_STRUCTURE_NAME = 'ITAB'

IT_FIELDCAT = FIELDCAT1

I_DEFAULT = 'X'

I_SAVE = 'A'

IT_EVENTS = EVE[]

TABLES

T_OUTTAB = ITAB.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

  • I_STRUCTURE_NAME = 'ITAB'

IT_FIELDCAT = FIELDCAT[]

I_DEFAULT = 'X'

I_SAVE = 'A'

IT_EVENTS = EVE[]

TABLES

T_OUTTAB = ITAB.

FORM HEADER.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'GENERAL MATERIAL DATA'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[].

ENDFORM.

FORM LISTEND.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'END OF THE LIST'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[].

ENDFORM.

FORM LISTTOP.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'TOP OF THE LIST'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[].

ENDFORM.

<b>reward if helpful</b>

rgds,

bharat.

Read only

Former Member
0 Likes
730

REPORT z_demo_2_alv_list.

----


  • This program is an example with 2 ALV Grid lists *

  • The Sales Orders are displayed in the first list *

  • When a line is selected, the items of the order are displayed in *

  • the second list *

----


----


  • Macro definition

DEFINE m_fieldcat.

add 1 to ls_fieldcat-col_pos.

ls_fieldcat-fieldname = &1.

ls_fieldcat-ref_tabname = &2.

ls_fieldcat-cfieldname = &3.

ls_fieldcat-qfieldname = &4.

append ls_fieldcat to lt_fieldcat.

END-OF-DEFINITION.

----


TYPE-POOLS: slis. " ALV Global types

----


TYPES:

BEGIN OF ty_vbak,

vkorg TYPE vbak-vkorg, " Sales organization

kunnr TYPE vbak-kunnr, " Sold-to party

vbeln TYPE vbak-vbeln, " Sales document

netwr TYPE vbak-netwr, " Net Value of the Sales Order

waerk TYPE vbak-waerk, " Currency

END OF ty_vbak,

BEGIN OF ty_vbap,

vbeln TYPE vbap-vbeln, " Sales document

posnr TYPE vbap-posnr, " Sales document item

matnr TYPE vbap-matnr, " Material number

arktx TYPE vbap-arktx, " Short text for sales order item

kwmeng TYPE vbap-kwmeng, " Order quantity

vrkme TYPE vbap-vrkme, " Quantity Unit

netwr TYPE vbap-netwr, " Net value of the order item

waerk TYPE vbap-waerk, " Currency

END OF ty_vbap.

----


DATA :

gs_vbak TYPE ty_vbak,

  • Data displayed in the first list

gt_vbak TYPE TABLE OF ty_vbak,

  • Data displayed in the second list

gt_vbap TYPE TABLE OF ty_vbap.

----


SELECT-OPTIONS :

s_vkorg FOR gs_vbak-vkorg, " Sales organization

s_kunnr FOR gs_vbak-kunnr, " Sold-to party

s_vbeln FOR gs_vbak-vbeln. " Sales document

SELECTION-SCREEN :

SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED

PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

----


INITIALIZATION.

v_1 = 'Maximum of records to read'.

----


START-OF-SELECTION.

PERFORM f_read_data_vbak.

PERFORM f_display_data_vbak.

----


  • Form f_read_data_vbak

----


FORM f_read_data_vbak.

SELECT vkorg kunnr vbeln netwr waerk

INTO CORRESPONDING FIELDS OF TABLE gt_vbak

UP TO p_max ROWS

FROM vbak

WHERE kunnr IN s_kunnr

AND vbeln IN s_vbeln

AND vkorg IN s_vkorg

and vbtyp = 'C'. " C = Sales Orders.

ENDFORM. " F_READ_DATA_VBAK

----


  • Form f_display_data_vbak

----


FORM f_display_data_vbak.

DATA:

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv.

  • Build the field catalog

m_fieldcat 'VKORG' 'VBAK' '' ''.

m_fieldcat 'KUNNR' 'VBAK' '' ''.

m_fieldcat 'VBELN' 'VBAK' '' ''.

m_fieldcat 'NETWR' 'VBAK' 'WAERK' ''.

m_fieldcat 'WAERK' 'VBAK' '' ''.

  • Display the first list

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

i_callback_user_command = 'USER_COMMAND'

it_fieldcat = lt_fieldcat

TABLES

t_outtab = gt_vbak.

ENDFORM. " F_DISPLAY_DATA_VBAK

----


  • FORM USER_COMMAND *

----


FORM user_command USING u_ucomm TYPE syucomm

us_selfield TYPE slis_selfield. "#EC CALLED

CASE u_ucomm.

WHEN '&IC1'.

READ TABLE gt_vbak INDEX us_selfield-tabindex INTO gs_vbak.

CHECK sy-subrc EQ 0.

PERFORM f_read_data_vbap. " Read data from VBAP

PERFORM f_display_data_vbap.

ENDCASE.

ENDFORM. " USER_COMMAND

----


  • Form f_read_data_vbap

----


FORM f_read_data_vbap.

SELECT vbeln posnr matnr arktx kwmeng vrkme netwr waerk

INTO CORRESPONDING FIELDS OF TABLE gt_vbap

FROM vbap

WHERE vbeln = gs_vbak-vbeln.

ENDFORM. " F_READ_DATA_VBAP

----


  • Form f_display_data_vbap

----


FORM f_display_data_vbap.

DATA:

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv.

  • Build the field catalog

m_fieldcat 'VBELN' 'VBAP' '' ''.

m_fieldcat 'POSNR' 'VBAP' '' ''.

m_fieldcat 'MATNR' 'VBAP' '' ''.

m_fieldcat 'ARKTX' 'VBAP' '' ''.

m_fieldcat 'KWMENG' 'VBAP' '' 'VRKME'.

m_fieldcat 'VRKME' 'VBAP' '' ''.

m_fieldcat 'NETWR' 'VBAP' 'WAERK' ''.

m_fieldcat 'WAERK' 'VBAP' '' ''.

  • Display the second list

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = lt_fieldcat

TABLES

t_outtab = gt_vbap.

ENDFORM. " F_DISPLAY_DATA_VBAP

                                  • END OF PROGRAM Z_DEMO_2_ALV_LIST ******************

Read only

former_member198270
Active Contributor
0 Likes
731

hi,

please find thecode

TYPE-POOLS: slis.

DATA: BEGIN OF itab1 OCCURS 0,

vbeln TYPE vbeln,

bstnk TYPE vbak-bstnk,

erdat TYPE vbak-erdat,

kunnr TYPE vbak-kunnr,

END OF itab1.

DATA: BEGIN OF itab2 OCCURS 0,

vbeln TYPE vbeln,

matnr TYPE vbap-matnr,

netpr TYPE vbap-netpr,

kwmeng TYPE vbap-kwmeng,

END OF itab2.

DATA: t_fieldcatalog1 TYPE slis_t_fieldcat_alv.

DATA: t_fieldcatalog2 TYPE slis_t_fieldcat_alv.

DATA: v_repid TYPE syrepid.

v_repid = sy-repid.

  • Get the fieldcatalog1

PERFORM get_fieldcat1.

  • Get the fieldcatalog2

PERFORM get_fieldcat2.

SELECT vbeln bstnk erdat kunnr UP TO 25 ROWS

INTO TABLE itab1

FROM vbak.

SELECT vbeln matnr netpr kwmeng UP TO 25 ROWS

INTO TABLE itab2

FROM vbap.

  • init

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = v_repid.

DATA: s_layout TYPE slis_layout_alv.

DATA: i_tabname TYPE slis_tabname.

DATA: it_events TYPE slis_t_event.

i_tabname = 'ITAB1'.

  • First block

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = s_layout

it_fieldcat = t_fieldcatalog1

i_tabname = i_tabname

it_events = it_events

TABLES

t_outtab = itab1.

  • Second block

i_tabname = 'ITAB2'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = s_layout

it_fieldcat = t_fieldcatalog2

i_tabname = i_tabname

it_events = it_events

TABLES

t_outtab = itab2.

*Display

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

.

----


  • FORM GET_FIELDCAT1 *

----


  • ........ *

----


FORM get_fieldcat1.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'VBELN'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'VBELN'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'BSTNK'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'BSTNK'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'ERDAT'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'ERDAT'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'KUNNR'.

s_fieldcatalog-tabname = 'ITAB1'.

s_fieldcatalog-rollname = 'KUNNR'.

APPEND s_fieldcatalog TO t_fieldcatalog1.

CLEAR s_fieldcatalog.

ENDFORM. "get_fieldcat1

----


  • FORM GET_FIELDCAT2 *

----


  • ........ *

----


FORM get_fieldcat2.

DATA: s_fieldcatalog TYPE slis_fieldcat_alv.

s_fieldcatalog-col_pos = '1'.

s_fieldcatalog-fieldname = 'VBELN'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'VBELN'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '2'.

s_fieldcatalog-fieldname = 'MATNR'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'MATNR'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '3'.

s_fieldcatalog-fieldname = 'NETPR'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'NETPR'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

s_fieldcatalog-col_pos = '4'.

s_fieldcatalog-fieldname = 'KWMENG'.

s_fieldcatalog-tabname = 'ITAB2'.

s_fieldcatalog-rollname = 'KWMENG'.

APPEND s_fieldcatalog TO t_fieldcatalog2.

CLEAR s_fieldcatalog.

ENDFORM. "get_fieldcat2

One more type of ALV program .

&----


*& Report Z8AS_PROGRAM_ALV

*&

&----


*&

*&

&----


REPORT Z8AS_PROGRAM_ALV.

TABLES : STKO,STPO,MAKT,MAST.

TYPE-POOLS : SLIS.

DATA : BEGIN OF ISTKO OCCURS 0,

STLNR LIKE STKO-STLNR,

DATUV LIKE STKO-DATUV,

MATNR LIKE MAST-MATNR,

BMENG LIKE STKO-BMENG,

BMEIN LIKE STKO-BMEIN,

END OF ISTKO.

DATA : BEGIN OF ISTPO OCCURS 0,

STLNR LIKE STPO-STLNR,

IDNRK LIKE STPO-IDNRK,

MENGE LIKE STPO-MENGE,

MEINS LIKE STPO-MEINS,

MAKTX LIKE MAKT-MAKTX,

END OF ISTPO.

DATA : BEGIN OF IMAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

MAKTX LIKE MAKT-MAKTX,

END OF IMAKT.

DATA : BEGIN OF IMAST OCCURS 0,

MATNR LIKE MAST-MATNR,

STLNR LIKE MAST-STLNR,

END OF IMAST.

DATA : IFIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WFIELDCAT TYPE SLIS_FIELDCAT_ALV,

ILAYOUT TYPE SLIS_LAYOUT_ALV,

IKEYINFO TYPE SLIS_KEYINFO_ALV,

IEVENT TYPE SLIS_T_EVENT,

WEVENT TYPE SLIS_ALV_EVENT.

PARAMETERS : P_NUM TYPE I .

START-OF-SELECTION.

PERFORM GETDATA.

PERFORM GETHEADERMAT.

PERFORM GET_MAT_DESC.

PERFORM BUILD_FCAT_HEAD.

PERFORM BUILD_FCAT_ITEM.

PERFORM BUILD_KEYINFO.

PERFORM BUILD_EVENT_TAB.

PERFORM BUILD_LAYOUT.

PERFORM DISPLAY_DATA.

&----


*& Form GETDATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GETDATA .

SELECT STLNR DATUV BMENG BMEIN INTO CORRESPONDING FIELDS OF TABLE ISTKO

FROM STKO UP TO P_NUM ROWS.

IF NOT ISTKO[] IS INITIAL.

SELECT STLNR IDNRK MENGE MEINS INTO TABLE ISTPO FROM STPO FOR ALL ENTRIES IN ISTKO

WHERE STLNR = ISTKO-STLNR AND POSTP = 'L'.

ENDIF.

ENDFORM. " GETDATA

&----


*& Form BUILD_FCAT_HEAD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FCAT_HEAD .

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'STLNR'.

WFIELDCAT-SELTEXT_L = 'BOM no'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'DATUV'.

WFIELDCAT-SELTEXT_L = 'BOM date'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'MATNR'.

WFIELDCAT-SELTEXT_L = 'Header mat no'.

WFIELDCAT-OUTPUTLEN = 18.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'BMENG'.

WFIELDCAT-SELTEXT_L = 'Base qty'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTKO'.

WFIELDCAT-FIELDNAME = 'BMEIN'.

WFIELDCAT-SELTEXT_L = 'UOM'.

WFIELDCAT-OUTPUTLEN = 3.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

ENDFORM. " BUILD_FCAT_HEAD

&----


*& Form BUILD_FCAT_ITEM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FCAT_ITEM .

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'IDNRK'.

WFIELDCAT-SELTEXT_L = 'Material no'.

*WFIELDCAT-HOTSPOT = 'X'.

WFIELDCAT-OUTPUTLEN = 18.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'MAKTX'.

WFIELDCAT-SELTEXT_L = 'Material desc'.

WFIELDCAT-JUST = 'C'.

WFIELDCAT-OUTPUTLEN = 30.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'MENGE'.

WFIELDCAT-SELTEXT_L = 'Item qty'.

WFIELDCAT-OUTPUTLEN = 15.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-TABNAME = 'ISTPO'.

WFIELDCAT-FIELDNAME = 'MEINS'.

WFIELDCAT-SELTEXT_L = 'UOM'.

WFIELDCAT-OUTPUTLEN = 3.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

ENDFORM. " BUILD_FCAT_ITEM

&----


*& Form BUILD_KEYINFO

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_KEYINFO .

IKEYINFO-HEADER01 = 'STLNR'.

IKEYINFO-ITEM01 = 'STLNR'.

ENDFORM. " BUILD_KEYINFO

&----


*& Form DISPLAY_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_DATA .

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = 'USER_COM'

IS_LAYOUT = ILAYOUT

IT_FIELDCAT = IFIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = IEVENT[]

  • IT_EVENT_EXIT =

I_TABNAME_HEADER = 'ISTKO'

I_TABNAME_ITEM = 'ISTPO'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

IS_KEYINFO = IKEYINFO

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB_HEADER = ISTKO

T_OUTTAB_ITEM = ISTPO

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " DISPLAY_DATA

&----


*& Form GET_MAT_DESC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_MAT_DESC .

IF NOT ISTPO[] IS INITIAL.

SELECT MATNR MAKTX INTO TABLE IMAKT FROM MAKT FOR ALL ENTRIES IN ISTPO

WHERE MATNR = ISTPO-IDNRK.

ENDIF.

LOOP AT ISTPO.

READ TABLE IMAKT WITH KEY MATNR = ISTPO-IDNRK.

IF SY-SUBRC = 0.

ISTPO-MAKTX = IMAKT-MAKTX.

ENDIF.

MODIFY ISTPO.

ENDLOOP.

ENDFORM. " GET_MAT_DESC

&----


*& Form BUILD_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_LAYOUT .

ILAYOUT-ZEBRA = 'X'.

ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.

ENDFORM. " BUILD_LAYOUT

*FORM USER_COM USING PUCOM LIKE SY-UCOMM PSELFIELD TYPE SLIS_SELFIELD.

*

*CASE PUCOM.

*WHEN '&IC1'.

  • SET PARAMETER ID 'MAT' FIELD PSELFIELD-VALUE.

  • CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.

*ENDCASE.

*

*ENDFORM.

&----


*& Form BUILD_EVENT_TAB

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_EVENT_TAB .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = IEVENT

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE IEVENT INTO WEVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC = 0.

WEVENT-FORM = 'TOPOFPAGE'.

MODIFY IEVENT FROM WEVENT INDEX SY-TABIX.

ENDIF.

ENDFORM. " BUILD_EVENT_TAB

&----


*& Form TOPOFPAGE

&----


  • text

----


FORM TOPOFPAGE.

DATA : ILISTHEAD TYPE SLIS_T_LISTHEADER,

WLISTHEAD TYPE SLIS_LISTHEADER.

WLISTHEAD-INFO = 'Its a test hierarchical sequential alv dispaly'.

WLISTHEAD-TYP = 'H'.

APPEND WLISTHEAD TO ILISTHEAD.

WLISTHEAD-INFO = 'hellozzzz'.

WLISTHEAD-TYP = 'S'.

APPEND WLISTHEAD TO ILISTHEAD.

WLISTHEAD-INFO = 'Action'.

WLISTHEAD-TYP = 'A'.

APPEND WLISTHEAD TO ILISTHEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = ILISTHEAD

  • I_LOGO = ''

  • I_END_OF_LIST_GRID =

.

ENDFORM.

&----


*& Form GETHEADERMAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GETHEADERMAT .

IF NOT ISTKO[] IS INITIAL.

SELECT MATNR STLNR INTO TABLE IMAST FROM MAST FOR ALL ENTRIES IN ISTKO

WHERE STLNR = ISTKO-STLNR.

ENDIF.

LOOP AT ISTKO.

READ TABLE IMAST WITH KEY STLNR = ISTKO-STLNR.

IF SY-SUBRC = 0.

ISTKO-MATNR = IMAST-MATNR.

ENDIF.

MODIFY ISTKO.

ENDLOOP.

ENDFORM. " GETHEADERMAT

Reward Points if helpful .

Regards,

Amber S

Message was edited by:

Amber S

Read only

0 Likes
730

pls send me the purpose of ur alv reports..

Read only

0 Likes
730

Hi ,

Both programs are used to display Header and Item data(for Ex. Sales Order ) .

But in different type , as per requirement you can use Function modules ..

Regards,

Amber S