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: 

ALV report with split screen display

Former Member
0 Kudos
1,937

HI,

I need to create a report where the output will be in the form of a split screen, with agreements in the left hand window and details in the right hand window (ALV).

User should be able to create his own variants and the output downloadable to Excel.

How do i go about doing this?

2 REPLIES 2

andreas_mann3
Active Contributor
0 Kudos
136

Hi ,

here're some samples to split screen

between tree and grid:

BCALV_DND*

e.g. <b>BCALV_DND_01</b>

regards Andreas

Former Member
0 Kudos
136

Hi,

Try this one.

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

  • Class definition :

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

*----


  • CLASS v_lcl_event_receiver DEFINITION

*----


CLASS v_lcl_event_receiver DEFINITION.

PUBLIC SECTION.

METHODS:

handle_print_top_of_page FOR EVENT print_top_of_page OF

cl_gui_alv_grid,

handle_top_of_page FOR EVENT top_of_page OF

cl_gui_alv_grid.

ENDCLASS.

----


  • CLASS V_LCL_EVENT_RECEIVER IMPLEMENTATION

----


CLASS v_lcl_event_receiver IMPLEMENTATION.

METHOD handle_print_top_of_page.

IF sy-pagno = 1.

PERFORM top_of_page.

ENDIF.

ENDMETHOD.

METHOD handle_top_of_page.

PERFORM top_of_page.

ENDMETHOD.

ENDCLASS.

DATA: v_event_receiver TYPE REF TO v_lcl_event_receiver.

FORM top_of_page.

WRITE: text-020,

/

ENDFORM. " top_of_page

In PBo of the screen

DATA: v_split TYPE REF TO cl_gui_easy_splitter_container,

v_contnr_top TYPE REF TO cl_gui_container,

v_contnr_bot TYPE REF TO cl_gui_container,

v_grid_02 TYPE REF TO cl_gui_alv_grid,

v_html TYPE REF TO cl_dd_document,

v_text20(255) TYPE c,

v_text16(255) TYPE c,

FORM f9000_objects_create.

IF cl_gui_alv_grid=>offline( ) IS INITIAL.

Create a container

CREATE OBJECT o_dockingcontainer

EXPORTING

ratio = '95'

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

others = 6.

IF sy-subrc NE 0.

MESSAGE i000 WITH text-e01."Error in creating Docking container

LEAVE LIST-PROCESSING.

ENDIF.

CREATE OBJECT v_split

EXPORTING

parent = o_dockingcontainer

  • ORIENTATION = 0

sash_position = 25

with_border = 0

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

others = 3.

IF sy-subrc NE 0.

MESSAGE i000 WITH text-e01."Error in creating Docking container

LEAVE LIST-PROCESSING.

ENDIF.

  • Get the containers of the splitter control

v_contnr_top = v_split->top_left_container.

v_contnr_bot = v_split->bottom_right_container.

CREATE OBJECT o_alvgrid

EXPORTING

i_parent = o_dockingcontainer.

  • Create an instance of alv control

CREATE OBJECT o_alvgrid

EXPORTING i_parent = v_contnr_bot.

  • Object for display of selection parameters in HTML top container

CREATE OBJECT v_html

EXPORTING

style = 'ALV_GRID'.

  • Must be after the SET HANDLER for TOP_OF_PAGE and foreground only

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'TOP_OF_PAGE'

i_dyndoc_id = v_html.

v_text20 = text-020(summary Record counts)Any text.

CALL METHOD v_html->add_gap

EXPORTING

width = 120.

CALL METHOD v_html->add_text

EXPORTING

text = v_text20.

CALL METHOD v_html->new_line.

    • Display Text-016

v_text16 = text-016.

CALL METHOD v_html->add_gap

EXPORTING

width = 1.

CALL METHOD v_html->add_text

EXPORTING

text = v_text16.

v_text16 = v_sap_recon.

CALL METHOD v_html->add_gap

EXPORTING

width = 1.

CALL METHOD v_html->add_text

EXPORTING

text = v_text16.

CALL METHOD v_html->new_line.

  • Display the data

CALL METHOD v_html->display_document

EXPORTING

parent = v_contnr_top.

  • Handle the event

CALL METHOD o_alvgrid->list_processing_events

EXPORTING i_event_name = 'PRINT_TOP_OF_PAGE'.

IN PBO while populating in the output table

FORM f9004_display_data TABLES p_report_tab

p_fieldcat.

CALL METHOD o_alvgrid->set_table_for_first_display

EXPORTING

is_variant = w_variant

i_save = c_a

is_layout = w_layout

CHANGING

it_outtab = p_report_tab[]

it_fieldcatalog = p_fieldcat[]

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4.

IF sy-subrc <> 0.

MESSAGE i000 WITH text-e06."Error in ALV report display

LEAVE LIST-PROCESSING.

ENDIF.

  • Create object

IF v_event_receiver IS INITIAL.

CREATE OBJECT v_event_receiver.

ENDIF.

SET HANDLER v_event_receiver->handle_print_top_of_page FOR o_alvgrid.

SET HANDLER v_event_receiver->handle_top_of_page FOR o_alvgrid.

I have used this in my program and it is working fine.

Thanks & Regards,

Judith