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

Multiple ALV display using SALV(Factory method)...

aris_hidalgo
Contributor
0 Likes
1,404

Hello Experts,

Please provide me any examples on how to display multiple ALV

displays in a screen using SALV(Factory method).

Hope you can help me guys.

Thank you and take care!

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
804

Hi Viraylab,

Kindly check the program below, this will help you..

&----


*& Report Z101754_REPORT

*&

&----


*&

*&

&----


REPORT z101754_report.

TABLES: zvbak_101754,zvbap_101754,mara.

TYPE-POOLS: slis.

DATA : i_fieldcat TYPE slis_t_fieldcat_alv.

DATA: FLDNAME(24).

DATA : BEGIN OF itab_zvbap OCCURS 0,

zvbeln LIKE zvbap_101754-zvbeln,

zposnr LIKE zvbap_101754-zposnr,

zmatnr LIKE zvbap_101754-zmatnr,

zbrgew LIKE zvbap_101754-zbrgew,

zgi_qty LIKE zvbap_101754-zgi_qty,

zinv_qty LIKE zvbap_101754-zinv_qty,

END OF itab_zvbap.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-t01.

SELECT-OPTIONS : s_zvbeln FOR zvbak_101754-zvbeln,

s_zkunwe FOR zvbak_101754-zkunwe,

s_zerdat FOR zvbak_101754-zerdat,

s_zmatnr FOR zvbap_101754-zmatnr.

SELECTION-SCREEN END OF BLOCK block1.

SELECTION-SCREEN: BEGIN OF BLOCK block2 WITH FRAME TITLE t02.

PARAMETERS : invoiced AS CHECKBOX,

s_gi AS CHECKBOX .

SELECTION-SCREEN: END OF BLOCK block2.

SELECTION-SCREEN: BEGIN OF BLOCK block3 WITH FRAME TITLE t03.

PARAMETERS : alv_list RADIOBUTTON GROUP g1,

alv_grid RADIOBUTTON GROUP g1,

s_class RADIOBUTTON GROUP g1.

SELECTION-SCREEN: END OF BLOCK block3.

************************************************************************

  • Screen Field Validation event

AT SELECTION-SCREEN ON s_zvbeln.

SELECT SINGLE *

FROM zvbak_101754 WHERE zvbeln IN s_zvbeln.

IF sy-subrc NE 0.

MESSAGE e000(z754).

ENDIF.

AT SELECTION-SCREEN ON s_zkunwe.

SELECT SINGLE *

FROM zvbak_101754 WHERE zkunwe IN s_zkunwe.

IF sy-subrc NE 0.

MESSAGE e001(z754).

ENDIF.

AT SELECTION-SCREEN ON s_zerdat.

SELECT SINGLE *

FROM zvbak_101754 WHERE zerdat IN s_zerdat.

IF sy-subrc NE 0.

MESSAGE e002(z754).

ENDIF.

AT SELECTION-SCREEN ON s_zmatnr.

SELECT SINGLE *

FROM zvbap_101754 WHERE zmatnr IN s_zmatnr.

IF sy-subrc NE 0.

MESSAGE e003(z754).

ENDIF.

***********************************************************************

*******************************************************************

  • Start-Of-Selection Event

START-OF-SELECTION.

PERFORM select-data.

*******************************************************************

  • End-Of-Selection Event

END-OF-SELECTION.

PERFORM display.

******************************************************************

&----


*& Form select-data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM select-data .

SELECT zvbeln zposnr zmatnr zbrgew zgi_qty zinv_qty

INTO CORRESPONDING FIELDS OF TABLE itab_zvbap

FROM zvbap_101754

WHERE zvbeln IN s_zvbeln.

ENDFORM. " select-data3

  • TOP-OF-PAGE.

AT LINE-SELECTION.

FORMAT HOTSPOT.

*GET THE FIELD NAME ON LINE SELECTION

GET CURSOR FIELD FLDNAME . "value field_value.

IF FLDNAME = 'itab_zvbap-zvbeln'.

SET PARAMETER ID 'BES' FIELD itab_zvbap-zvbeln.

CALL TRANSACTION 'ZVA01_101754'.

ENDIF.

&----


*& Form DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display .

IF s_class ='X'.

PERFORM display_header.

LOOP AT itab_zvbap.

WRITE : / sy-vline,

itab_zvbap-zvbeln ,

13 sy-vline,

itab_zvbap-zposnr ,

30 sy-vline,

itab_zvbap-zmatnr ,

45 sy-vline,

itab_zvbap-zbrgew UNIT mara-meins ,

65 sy-vline,

itab_zvbap-zgi_qty UNIT mara-meins,

85 sy-vline,

itab_zvbap-zinv_qty UNIT mara-meins,

105 sy-vline,

/ sy-uline(105).

ENDLOOP.

ENDIF.

&----


*& Creating the fieldcatalog.

&----


CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB_ZVBAP'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = sy-repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = i_fieldcat

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

IF alv_list = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-repid

i_callback_pf_status_set = ' '

i_callback_user_command = 'USER_COMMAND '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_zvbap[]

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.

ENDIF.

IF alv_grid = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-repid

i_callback_pf_status_set = ' '

i_callback_user_command = 'USER_COMMAND '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_zvbap[]

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.

ENDIF.

ENDFORM. " DISPLAY

&----


*& Form display_header

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_header .

WRITE : / sy-vline,

'ORDER NO',

13 sy-vline,

'ITEM NO',

30 sy-vline,

'MATERIAL NO',

45 sy-vline,

'ORDER QTY',

65 sy-vline,

'GI QTY',

85 sy-vline,

'INVOICED QTY',

105 sy-vline,

/ sy-uline(105).

ENDFORM. " display_header

Please let me know if you have any doubt.

Regards,

Amit.

Hi Viraylab,

Kindly check the program below, this will help you..

&----


*& Report Z101754_REPORT

*&

&----


*&

*&

&----


REPORT z101754_report.

TABLES: zvbak_101754,zvbap_101754,mara.

TYPE-POOLS: slis.

DATA : i_fieldcat TYPE slis_t_fieldcat_alv.

DATA: FLDNAME(24).

DATA : BEGIN OF itab_zvbap OCCURS 0,

zvbeln LIKE zvbap_101754-zvbeln,

zposnr LIKE zvbap_101754-zposnr,

zmatnr LIKE zvbap_101754-zmatnr,

zbrgew LIKE zvbap_101754-zbrgew,

zgi_qty LIKE zvbap_101754-zgi_qty,

zinv_qty LIKE zvbap_101754-zinv_qty,

END OF itab_zvbap.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-t01.

SELECT-OPTIONS : s_zvbeln FOR zvbak_101754-zvbeln,

s_zkunwe FOR zvbak_101754-zkunwe,

s_zerdat FOR zvbak_101754-zerdat,

s_zmatnr FOR zvbap_101754-zmatnr.

SELECTION-SCREEN END OF BLOCK block1.

SELECTION-SCREEN: BEGIN OF BLOCK block2 WITH FRAME TITLE t02.

PARAMETERS : invoiced AS CHECKBOX,

s_gi AS CHECKBOX .

SELECTION-SCREEN: END OF BLOCK block2.

SELECTION-SCREEN: BEGIN OF BLOCK block3 WITH FRAME TITLE t03.

PARAMETERS : alv_list RADIOBUTTON GROUP g1,

alv_grid RADIOBUTTON GROUP g1,

s_class RADIOBUTTON GROUP g1.

SELECTION-SCREEN: END OF BLOCK block3.

************************************************************************

  • Screen Field Validation event

AT SELECTION-SCREEN ON s_zvbeln.

SELECT SINGLE *

FROM zvbak_101754 WHERE zvbeln IN s_zvbeln.

IF sy-subrc NE 0.

MESSAGE e000(z754).

ENDIF.

AT SELECTION-SCREEN ON s_zkunwe.

SELECT SINGLE *

FROM zvbak_101754 WHERE zkunwe IN s_zkunwe.

IF sy-subrc NE 0.

MESSAGE e001(z754).

ENDIF.

AT SELECTION-SCREEN ON s_zerdat.

SELECT SINGLE *

FROM zvbak_101754 WHERE zerdat IN s_zerdat.

IF sy-subrc NE 0.

MESSAGE e002(z754).

ENDIF.

AT SELECTION-SCREEN ON s_zmatnr.

SELECT SINGLE *

FROM zvbap_101754 WHERE zmatnr IN s_zmatnr.

IF sy-subrc NE 0.

MESSAGE e003(z754).

ENDIF.

***********************************************************************

*******************************************************************

  • Start-Of-Selection Event

START-OF-SELECTION.

PERFORM select-data.

*******************************************************************

  • End-Of-Selection Event

END-OF-SELECTION.

PERFORM display.

******************************************************************

&----


*& Form select-data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM select-data .

SELECT zvbeln zposnr zmatnr zbrgew zgi_qty zinv_qty

INTO CORRESPONDING FIELDS OF TABLE itab_zvbap

FROM zvbap_101754

WHERE zvbeln IN s_zvbeln.

ENDFORM. " select-data3

  • TOP-OF-PAGE.

AT LINE-SELECTION.

FORMAT HOTSPOT.

*GET THE FIELD NAME ON LINE SELECTION

GET CURSOR FIELD FLDNAME . "value field_value.

IF FLDNAME = 'itab_zvbap-zvbeln'.

SET PARAMETER ID 'BES' FIELD itab_zvbap-zvbeln.

CALL TRANSACTION 'ZVA01_101754'.

ENDIF.

&----


*& Form DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display .

IF s_class ='X'.

PERFORM display_header.

LOOP AT itab_zvbap.

WRITE : / sy-vline,

itab_zvbap-zvbeln ,

13 sy-vline,

itab_zvbap-zposnr ,

30 sy-vline,

itab_zvbap-zmatnr ,

45 sy-vline,

itab_zvbap-zbrgew UNIT mara-meins ,

65 sy-vline,

itab_zvbap-zgi_qty UNIT mara-meins,

85 sy-vline,

itab_zvbap-zinv_qty UNIT mara-meins,

105 sy-vline,

/ sy-uline(105).

ENDLOOP.

ENDIF.

&----


*& Creating the fieldcatalog.

&----


CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB_ZVBAP'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = sy-repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = i_fieldcat

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

IF alv_list = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-repid

i_callback_pf_status_set = ' '

i_callback_user_command = 'USER_COMMAND '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_zvbap[]

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.

ENDIF.

IF alv_grid = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-repid

i_callback_pf_status_set = ' '

i_callback_user_command = 'USER_COMMAND '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_zvbap[]

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.

ENDIF.

ENDFORM. " DISPLAY

&----


*& Form display_header

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_header .

WRITE : / sy-vline,

'ORDER NO',

13 sy-vline,

'ITEM NO',

30 sy-vline,

'MATERIAL NO',

45 sy-vline,

'ORDER QTY',

65 sy-vline,

'GI QTY',

85 sy-vline,

'INVOICED QTY',

105 sy-vline,

/ sy-uline(105).

ENDFORM. " display_header

Please let me know if you have any doubt.

Regards,

Amit.

2 REPLIES 2
Read only

Former Member
0 Likes
805

Hi Viraylab,

Kindly check the program below, this will help you..

&----


*& Report Z101754_REPORT

*&

&----


*&

*&

&----


REPORT z101754_report.

TABLES: zvbak_101754,zvbap_101754,mara.

TYPE-POOLS: slis.

DATA : i_fieldcat TYPE slis_t_fieldcat_alv.

DATA: FLDNAME(24).

DATA : BEGIN OF itab_zvbap OCCURS 0,

zvbeln LIKE zvbap_101754-zvbeln,

zposnr LIKE zvbap_101754-zposnr,

zmatnr LIKE zvbap_101754-zmatnr,

zbrgew LIKE zvbap_101754-zbrgew,

zgi_qty LIKE zvbap_101754-zgi_qty,

zinv_qty LIKE zvbap_101754-zinv_qty,

END OF itab_zvbap.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-t01.

SELECT-OPTIONS : s_zvbeln FOR zvbak_101754-zvbeln,

s_zkunwe FOR zvbak_101754-zkunwe,

s_zerdat FOR zvbak_101754-zerdat,

s_zmatnr FOR zvbap_101754-zmatnr.

SELECTION-SCREEN END OF BLOCK block1.

SELECTION-SCREEN: BEGIN OF BLOCK block2 WITH FRAME TITLE t02.

PARAMETERS : invoiced AS CHECKBOX,

s_gi AS CHECKBOX .

SELECTION-SCREEN: END OF BLOCK block2.

SELECTION-SCREEN: BEGIN OF BLOCK block3 WITH FRAME TITLE t03.

PARAMETERS : alv_list RADIOBUTTON GROUP g1,

alv_grid RADIOBUTTON GROUP g1,

s_class RADIOBUTTON GROUP g1.

SELECTION-SCREEN: END OF BLOCK block3.

************************************************************************

  • Screen Field Validation event

AT SELECTION-SCREEN ON s_zvbeln.

SELECT SINGLE *

FROM zvbak_101754 WHERE zvbeln IN s_zvbeln.

IF sy-subrc NE 0.

MESSAGE e000(z754).

ENDIF.

AT SELECTION-SCREEN ON s_zkunwe.

SELECT SINGLE *

FROM zvbak_101754 WHERE zkunwe IN s_zkunwe.

IF sy-subrc NE 0.

MESSAGE e001(z754).

ENDIF.

AT SELECTION-SCREEN ON s_zerdat.

SELECT SINGLE *

FROM zvbak_101754 WHERE zerdat IN s_zerdat.

IF sy-subrc NE 0.

MESSAGE e002(z754).

ENDIF.

AT SELECTION-SCREEN ON s_zmatnr.

SELECT SINGLE *

FROM zvbap_101754 WHERE zmatnr IN s_zmatnr.

IF sy-subrc NE 0.

MESSAGE e003(z754).

ENDIF.

***********************************************************************

*******************************************************************

  • Start-Of-Selection Event

START-OF-SELECTION.

PERFORM select-data.

*******************************************************************

  • End-Of-Selection Event

END-OF-SELECTION.

PERFORM display.

******************************************************************

&----


*& Form select-data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM select-data .

SELECT zvbeln zposnr zmatnr zbrgew zgi_qty zinv_qty

INTO CORRESPONDING FIELDS OF TABLE itab_zvbap

FROM zvbap_101754

WHERE zvbeln IN s_zvbeln.

ENDFORM. " select-data3

  • TOP-OF-PAGE.

AT LINE-SELECTION.

FORMAT HOTSPOT.

*GET THE FIELD NAME ON LINE SELECTION

GET CURSOR FIELD FLDNAME . "value field_value.

IF FLDNAME = 'itab_zvbap-zvbeln'.

SET PARAMETER ID 'BES' FIELD itab_zvbap-zvbeln.

CALL TRANSACTION 'ZVA01_101754'.

ENDIF.

&----


*& Form DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display .

IF s_class ='X'.

PERFORM display_header.

LOOP AT itab_zvbap.

WRITE : / sy-vline,

itab_zvbap-zvbeln ,

13 sy-vline,

itab_zvbap-zposnr ,

30 sy-vline,

itab_zvbap-zmatnr ,

45 sy-vline,

itab_zvbap-zbrgew UNIT mara-meins ,

65 sy-vline,

itab_zvbap-zgi_qty UNIT mara-meins,

85 sy-vline,

itab_zvbap-zinv_qty UNIT mara-meins,

105 sy-vline,

/ sy-uline(105).

ENDLOOP.

ENDIF.

&----


*& Creating the fieldcatalog.

&----


CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB_ZVBAP'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

i_inclname = sy-repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = i_fieldcat

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

IF alv_list = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-repid

i_callback_pf_status_set = ' '

i_callback_user_command = 'USER_COMMAND '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_zvbap[]

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.

ENDIF.

IF alv_grid = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-repid

i_callback_pf_status_set = ' '

i_callback_user_command = 'USER_COMMAND '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = itab_zvbap[]

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.

ENDIF.

ENDFORM. " DISPLAY

&----


*& Form display_header

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_header .

WRITE : / sy-vline,

'ORDER NO',

13 sy-vline,

'ITEM NO',

30 sy-vline,

'MATERIAL NO',

45 sy-vline,

'ORDER QTY',

65 sy-vline,

'GI QTY',

85 sy-vline,

'INVOICED QTY',

105 sy-vline,

/ sy-uline(105).

ENDFORM. " display_header

Please let me know if you have any doubt.

Regards,

Amit.

Read only

Former Member
0 Likes
804

Hi,

Find the code below, I hope it will help you.

************************************************************************

  • T A B L E S

************************************************************************

tables : ekko.

----


  • data definition

----


types : begin of ty_ekko,

ebeln type ekko-ebeln,

lifnr type ekko-lifnr,

bsart type ekko-bsart,

aedat type ekko-aedat,

ernam type ekko-ernam,

end of ty_ekko.

types : begin of ty_eket,

ebeln type ekpo-ebeln,

ebelp type ekpo-ebelp,

werks type ekpo-werks,

matnr type ekpo-matnr,

menge type eket-menge,

wamng type eket-wamng,

netpr type ekpo-netpr,

end of ty_eket.

data : it_ekko type table of ty_ekko,

it_eket type table of ty_eket.

data: ob_hieralv type ref to cl_salv_hierseq_table.

data: it_binding type salv_t_hierseq_binding,

is_binding type salv_s_hierseq_binding.

************************************************************************

  • S E L C T O P T I O N S

************************************************************************

select-options : s_ebeln for ekko-ebeln.

************************************************************************

  • S T A R T O F S E L E C T I O N

************************************************************************

start-of-selection.

select ebeln

lifnr

bsart

aedat

ernam from ekko

into corresponding fields of table it_ekko

where ebeln in s_ebeln.

if sy-subrc eq 0.

select aebeln aebelp

awerks amatnr

bmenge bwamng

a~netpr from ekpo as a join eket as b

on amandt = bmandt

and aebeln = bebeln

and aebelp = bebelp

into corresponding fields of table it_eket

where a~ebeln in s_ebeln.

endif.

is_binding-master = 'EBELN'.

is_binding-slave = 'EBELN'.

append is_binding to it_binding.

*TRY.

call method cl_salv_hierseq_table=>factory

exporting

t_binding_level1_level2 = it_binding

importing

r_hierseq = ob_hieralv

changing

t_table_level1 = it_ekko

t_table_level2 = it_eket .

*CATCH cx_salv_data_error .

*CATCH cx_salv_not_found .

*ENDTRY.

call method ob_hieralv->display( ).

With best wishes,

Rama Murthy.P