Application Development 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: 

Two ALV grid in same report output

Former Member
0 Kudos

Hi All,

I have requirment in ALV report to display two ALV GRID in the output. Please help me out and what are the function module reqired for this requirment.

Thanks,

Rakesh

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Rakesh,

I have not tried this out but i think this is do able..

You would have to have two custom containers in case of OO ALV approach,

two fieldcatlogs,

two layout stuctures,

n two functions to call the ALV..

I think that should work out..

Regards,

Tanveer.

Please mark helpful answers

9 REPLIES 9

Former Member
0 Kudos

Hi Rakesh,

I have not tried this out but i think this is do able..

You would have to have two custom containers in case of OO ALV approach,

two fieldcatlogs,

two layout stuctures,

n two functions to call the ALV..

I think that should work out..

Regards,

Tanveer.

Please mark helpful answers

Former Member
0 Kudos

Hi,

You cannot do it with REUSE functions. you will have to use CONTROLS and CONTAINERS.

You just will have to split the container (CL_GUI_EASYSPLIITER_CONTAINER) and create two reports one for each container.

/people/ravikumar.allampallam/blog/2005/06/01/alv-reporting-using-controls--part-i

Regards,

Ravi

Note : Please close the thread if the issue is resolved.

0 Kudos

Hi Ravi,

Can we have two containers in the screen.. and then use the above solution by me..

Will that work.. havent tried it before..

Regards,

Tanveer.

sreemsft
Contributor
0 Kudos

Hi Rakesh,

If you are not using OOPS....

You can use ALV Blocked list, With in that you can call Two grids i guess.

Thanks,

Sreekanth

Former Member
0 Kudos

Hai Rakesh Singh

try with the following Code( Just copy the code & try with in SE38 Tcode & Execute it that all)

REPORT ZALV_SALES_HEADER_DETAIL MESSAGE-ID Z50650(MSG) .

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

  • TABLES

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

TABLES: VBAK . "SALES DOCUMENT HEADER

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

  • DATA OBJECTS DECLARATION

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

DATA: IT_VBAK TYPE STANDARD TABLE OF ZVBAK_STRUC,

IT_VBAP TYPE STANDARD TABLE OF ZVBAP_STRUC,

GS_LAYOUT TYPE LVC_S_LAYO,

GS1_LAYOUT TYPE LVC_S_LAYO,

GRID TYPE REF TO CL_GUI_ALV_GRID,

CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

VBAK_CONTAINER TYPE REF TO CL_GUI_CONTAINER,

VBAP_CONTAINER TYPE REF TO CL_GUI_CONTAINER,

WA_VBAK LIKE LINE OF IT_VBAK,

WA_VBAP LIKE LINE OF IT_VBAP,

SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER,

TOP_OF_PAGE_CONTAINER TYPE REF TO CL_GUI_CONTAINER,

GRID_VBAP TYPE REF TO CL_GUI_ALV_GRID,

TOP_PAGE TYPE REF TO CL_DD_DOCUMENT,

FLAG(1).

.

*"EVENT RECIEVER CLASS DEFINITION

CLASS LCL_EVENT_RECIEVER DEFINITION DEFERRED.

DATA: OBJ_EVENT TYPE REF TO LCL_EVENT_RECIEVER.

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

  • SELECTION-SCREEN

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

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN.

PARAMETERS: P_VBTYP LIKE VBAK-VBTYP DEFAULT 'C'.

SELECTION-SCREEN: END OF BLOCK B1.

  • CLASS DEFINITION AND DECLARATIONS

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

CLASS LCL_EVENT_RECIEVER DEFINITION.

PUBLIC SECTION.

EVENTS:DOUBLE_CLICK,

TOP_OF_PAGE.

METHODS:HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID

IMPORTING E_ROW .

METHODS: HANDLE_TOP_OF_PAGE FOR EVENT TOP_OF_PAGE OF CL_GUI_ALV_GRID.

ENDCLASS. "LCL_EVENT_RECIEVER DEFINITION

----


  • CLASS LCL_EVENT_RECIEVER IMPLEMENTATION

----


*

----


CLASS LCL_EVENT_RECIEVER IMPLEMENTATION.

METHOD: HANDLE_DOUBLE_CLICK.

READ TABLE IT_VBAK INDEX E_ROW-INDEX INTO WA_VBAK.

PERFORM FETCH_ITEM_DETAILS USING WA_VBAK.

PERFORM ALV_GRID.

ENDMETHOD. "HANDLE_DOUBLE_CLICK

METHOD: HANDLE_TOP_OF_PAGE.

CALL METHOD TOP_PAGE->ADD_TEXT

EXPORTING

TEXT = 'SALES HEADER & ITEM DETAILS'.

CALL METHOD TOP_PAGE->DISPLAY_DOCUMENT

EXPORTING

PARENT = TOP_OF_PAGE_CONTAINER.

ENDMETHOD. "HANDLER_TOP_OF_PAGE

ENDCLASS. "LCL_EVENT_RECIEVER IMPLEMENTATION

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

  • AT SELECTION-SCREEN

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

AT SELECTION-SCREEN.

IF S_VBELN IS NOT INITIAL.

SELECT COUNT(*)

FROM VBAK

WHERE VBELN IN S_VBELN.

IF SY-DBCNT = 0.

MESSAGE E000 WITH 'NO TABLE ENTRIES FOUND FOR LOW KEY SPECIFIED'.

ENDIF.

ENDIF.

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

  • START-OF-SELECTION.

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

START-OF-SELECTION.

PERFORM FETCH_SALES_HEADER_RECORD.

PERFORM CREATE_CALL. "CREATION OF OBJECTS & CALLING METHODS

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

  • END-OF-SELECTION.

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

END-OF-SELECTION.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'ZSTATUS'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Form FETCH_SALES_HEADER_RECORD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FETCH_SALES_HEADER_RECORD .

SELECT

VBELN

AUDAT

VBTYP

AUART

AUGRU

NETWR

WAERK

FROM VBAK

INTO CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE VBELN IN S_VBELN

AND VBTYP = P_VBTYP.

ENDFORM. " FETCH_SALES_HEADER_RECORD

&----


*& Form CREATE_CALL

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CREATE_CALL .

IF CUSTOM_CONTAINER IS INITIAL.

CREATE OBJECT CUSTOM_CONTAINER

EXPORTING

  • PARENT =

CONTAINER_NAME = 'CUSTOM_CONTAINER'

  • STYLE =

  • LIFETIME = lifetime_default

  • REPID =

  • DYNNR =

  • NO_AUTODEF_PROGID_DYNNR =

EXCEPTIONS

CNTL_ERROR = 1

CNTL_SYSTEM_ERROR = 2

CREATE_ERROR = 3

LIFETIME_ERROR = 4

LIFETIME_DYNPRO_DYNPRO_LINK = 5

OTHERS = 6

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CREATE OBJECT SPLITTER

EXPORTING

TOP = 5

PARENT = CUSTOM_CONTAINER

ROWS = 3

COLUMNS = 1

EXCEPTIONS

CNTL_ERROR = 1

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

CALL METHOD SPLITTER->GET_CONTAINER

EXPORTING

ROW = 1

COLUMN = 1

RECEIVING

CONTAINER = TOP_OF_PAGE_CONTAINER.

CALL METHOD SPLITTER->GET_CONTAINER

EXPORTING

ROW = 2

COLUMN = 1

RECEIVING

CONTAINER = VBAK_CONTAINER.

CALL METHOD SPLITTER->GET_CONTAINER

EXPORTING

ROW = 3

COLUMN = 1

RECEIVING

CONTAINER = VBAP_CONTAINER.

CREATE OBJECT GRID

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

I_PARENT = VBAK_CONTAINER

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

EXCEPTIONS

ERROR_CNTL_CREATE = 1

ERROR_CNTL_INIT = 2

ERROR_CNTL_LINK = 3

ERROR_DP_CREATE = 4

OTHERS = 5

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

GS_LAYOUT-GRID_TITLE = 'SALES HEADER DETAILS.'(100).

CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

I_STRUCTURE_NAME = 'ZVBAK_STRUC'

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

IS_LAYOUT = GS_LAYOUT

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

IT_OUTTAB = IT_VBAK

  • IT_FIELDCATALOG =

  • IT_SORT =

  • IT_FILTER =

EXCEPTIONS

INVALID_PARAMETER_COMBINATION = 1

PROGRAM_ERROR = 2

TOO_MANY_LINES = 3

OTHERS = 4

.

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.

CREATE OBJECT OBJ_EVENT .

SET HANDLER OBJ_EVENT->HANDLE_DOUBLE_CLICK FOR GRID.

SET HANDLER OBJ_EVENT->HANDLE_TOP_OF_PAGE FOR GRID.

CREATE OBJECT TOP_PAGE

EXPORTING

STYLE = 'ALV_GRID'

.

CALL METHOD TOP_PAGE->INITIALIZE_DOCUMENT.

CALL METHOD GRID->LIST_PROCESSING_EVENTS

EXPORTING

I_EVENT_NAME = 'TOP_OF_PAGE'

I_DYNDOC_ID = TOP_PAGE.

CALL SCREEN 100.

ENDFORM. " CREATE_CALL

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

CASE SY-UCOMM.

WHEN 'EXIT'.

LEAVE PROGRAM.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Form FETCH_ITEM_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FETCH_ITEM_DETAILS USING WA_VBAK TYPE ZVBAK_STRUC .

SELECT

VBELN

POSNR

MATNR

MATWA

PMATN

CHARG

FROM VBAP

INTO TABLE IT_VBAP

WHERE VBELN = WA_VBAK-VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'NO RECORDS FOUND FOR SPECIFIED KEY'.

ENDIF.

ENDFORM. " FETCH_ITEM_DETAILS

&----


*& Module STATUS_0200 OUTPUT

&----


  • text

----


MODULE STATUS_0200 OUTPUT.

SET PF-STATUS 'ZSTATUS'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_0200 OUTPUT

&----


*& Module USER_COMMAND_0200 INPUT

&----


  • text

----


MODULE USER_COMMAND_0200 INPUT.

CASE SY-UCOMM.

WHEN 'EXIT'.

LEAVE PROGRAM.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0200 INPUT

&----


*& Form alv_grid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM ALV_GRID .

IF FLAG = ''.

FLAG = 'X'.

CREATE OBJECT GRID_VBAP

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

I_PARENT = VBAP_CONTAINER

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

  • EXCEPTIONS

  • ERROR_CNTL_CREATE = 1

  • ERROR_CNTL_INIT = 2

  • ERROR_CNTL_LINK = 3

  • ERROR_DP_CREATE = 4

  • others = 5

.

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.

GS1_LAYOUT-GRID_TITLE = 'SALES ITEM DETAILS.'(100).

CALL METHOD GRID_VBAP->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

I_STRUCTURE_NAME = 'ZVBAP_STRUC'

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

IS_LAYOUT = GS1_LAYOUT

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

IT_OUTTAB = IT_VBAP

  • IT_FIELDCATALOG =

  • IT_SORT =

  • IT_FILTER =

EXCEPTIONS

INVALID_PARAMETER_COMBINATION = 1

PROGRAM_ERROR = 2

TOO_MANY_LINES = 3

OTHERS = 4

.

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. " alv_grid

Thanks & regards

Sreenivasulu P

Message was edited by: Sreenivasulu Ponnadi

former_member188685
Active Contributor
0 Kudos

Hi Rakesh,

It can be done Using OO ALV, you can use Splitter container and Split the container into two parts , then show to Grids in one Report.

You can check the Demo Program <b>BCALV_TEST_GRID_DRAG_DROP</b>

Regards

vijay

Former Member
0 Kudos

Hi,

you have two ALV grid in one dynpro and now you want to print these ALVs in one output.

Refer this link:

Regards

Rolf Peter Stein

Former Member
0 Kudos

dear Sreenivasulu P,

not able to run this report. It gives me a blank screen. How to design screen 100. Kindly specify.

thanks

anu

0 Kudos

Hi,

Check the following thread..

Regards

vijay