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 OO CONCEPT

Former Member
0 Kudos

HI GUYS

HOW DOING FINE IN YOUR RESPECTIVE FIELDS.

I WANT SOME LINK OR ANY DEMO REPORT IN ALV WITH PURE OBJECT ORIENTED CONCEPT.

THANKS A LOT

MRUTYUN

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi mrutyunjaya,

1. BCALV_GRID_08

regards,

amit m.

7 REPLIES 7

Former Member
0 Kudos

Hi mrutyunjaya,

1. BCALV_GRID_08

regards,

amit m.

Former Member
0 Kudos

Try this program

REPORT ZAPPS_GRID .

tables:sflight.

*--- Custom container instance reference

DATA gr_ccontainer TYPE REF TO cl_gui_custom_container .

*--- ALV Grid instance reference

DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid .

*--- Field catalog table

DATA gt_fieldcat TYPE lvc_t_fcat .

*--- Layout structure

DATA gs_layout TYPE lvc_s_layo .

*--- Name of the custom control added on the screen

DATA gc_custom_control_name TYPE scrfname value 'CC_ALV' .

*---exclude the functionalities

DATA gt_exclude TYPE ui_functions.

*---changing layout any time

DATA ls_fcat TYPE lvc_s_fcat .

DATA lt_fcat TYPE lvc_t_fcat .

DATA ls_layout TYPE lvc_s_layo .

*---SORT

DATA gt_sort TYPE LVC_T_SORT.

*---Filtering

DATA gt_filt TYPE LVC_T_FILT.

*---hyperlink

DATA gt_hype type lvc_t_hype .

DATA BEGIN OF gt_list OCCURS 0 .

INCLUDE STRUCTURE SFLIGHT .

DATA cellcolors TYPE lvc_t_scol .

DATA carrid_handle TYPE int4 .

DATA connid_handle TYPE int4 .

DATA END OF gt_list.

DATA GS_LIST LIKE GT_LIST.

*-----LOCAL CLASSES

CLASS lcl_event_handler DEFINITION .

PUBLIC SECTION .

METHODS: handle_double_click

FOR EVENT double_click OF cl_gui_ALV_GRID

IMPORTING

e_row e_column ES_ROW_NO.

PRIVATE SECTION.

ENDCLASS.

DATA gr_event_handler TYPE REF TO lcl_event_handler .

CLASS lcl_event_handler IMPLEMENTATION .

METHOD handle_double_click.

PERFORM handle_double_click

USING e_row e_column es_row_no .

ENDMETHOD .

ENDCLASS.

START-OF-SELECTION.

select * from sflight into CORRESPONDING FIELDS OF table gt_list up to

50 rows.

sort gt_list.

DATA ls_cellcolor TYPE lvc_s_scol .

READ TABLE gt_list INDEX 5 .

ls_cellcolor-fname = 'CARRID' .

ls_cellcolor-color-col = '3' .

ls_cellcolor-color-int = '1' .

APPEND ls_cellcolor TO gt_list-cellcolors .

MODIFY gt_list INDEX 5 .

call screen 100.

&----


*& Module DISPLAY_ALV OUTPUT

&----


  • text

----


MODULE DISPLAY_ALV OUTPUT.

PERFORM display_alv.

ENDMODULE. " DISPLAY_ALV OUTPUT

&----


*& Form display_alv

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_alv .

clear gr_alvgrid.

IF gr_alvgrid IS INITIAL .

*----Creating custom container instance

CREATE OBJECT gr_ccontainer

EXPORTING

container_name = gc_custom_control_name

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.

*--Exception handling

ENDIF.

*----Creating ALV Grid instance

CREATE OBJECT gr_alvgrid

EXPORTING

i_parent = gr_ccontainer

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

others = 5 .

IF sy-subrc <> 0.

*--Exception handling

ENDIF.

CREATE OBJECT gr_event_handler .

SET HANDLER gr_event_handler->handle_double_click FOR gr_alvgrid .

*----Preparing field catalog.

PERFORM prepare_field_catalog CHANGING gt_fieldcat .

*----Preparing layout structure

PERFORM prepare_layout CHANGING gs_layout .

*----Here will be additional preparations

*--e.g. initial sorting criteria, initial filtering criteria,

*--excluding functions

PERFORM exclude_tb_functions CHANGING gt_exclude.

PERFORM prepare_sort_table CHANGING Gt_sort.

*PERFORM prepare_filter_table CHANGING gt_filt.

PERFORM prepare_hyperlinks_table CHANGING gt_hype.

CALL METHOD gr_alvgrid->set_table_for_first_display

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

is_layout = gs_layout

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

IT_HYPERLINK = GT_HYPE

CHANGING

it_outtab = gt_list[]

it_fieldcatalog = gt_fieldcat

it_sort = gt_sort

it_filter = gt_filt[]

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4 .

IF sy-subrc <> 0.

*--Exception handling

ENDIF.

ELSE .

CALL METHOD gr_alvgrid->refresh_table_display

  • EXPORTING

  • IS_STABLE =

  • I_SOFT_REFRESH =

EXCEPTIONS

finished = 1

OTHERS = 2 .

IF sy-subrc <> 0.

*--Exception handling

ENDIF.

ENDIF .

ENDFORM. " display_alv

&----


*& Form prepare_field_catalog

&----


  • text

----


  • <--P_GT_FIELDCAT text

----


FORM prepare_field_catalog CHANGING PT_FIELDCAT TYPE lvc_t_fcat .

DATA ls_fcat type lvc_s_fcat .

ls_fcat-fieldname = 'CARRID' .

ls_fcat-inttype = 'C' .

ls_fcat-outputlen = '10' .

ls_fcat-coltext = 'Carrier ID' .

ls_fcat-seltext = 'Carrier ID' .

ls_fcat-web_field = 'CARRID_HANDLE'.

APPEND ls_fcat to pt_fieldcat .

CLEAR ls_fcat .

ls_fcat-fieldname = 'CONNID' .

ls_fcat-ref_table = 'SFLIGHT' .

ls_fcat-ref_table = 'CONNID' .

ls_fcat-outputlen = '10' .

ls_fcat-coltext = 'Connection ID' .

ls_fcat-seltext = 'Connection ID' .

ls_fcat-web_field = 'CONNID_HANDLE'.

APPEND ls_fcat to pt_fieldcat .

CLEAR ls_fcat .

ls_fcat-fieldname = 'SEATSOCC' .

ls_fcat-ref_table = 'SFLIGHT' .

ls_fcat-outputlen = '10' .

ls_fcat-coltext = 'Seats Occupied' .

APPEND ls_fcat to pt_fieldcat .

CLEAR ls_fcat .

ls_fcat-fieldname = 'PAYMENTSUM' .

ls_fcat-ref_table = 'SFLIGHT' .

ls_fcat-outputlen = '10' .

ls_fcat-coltext = 'Payment Sum' .

*color a column

ls_fcat-emphasize = 'C60'.

APPEND ls_fcat to pt_fieldcat .

CLEAR ls_fcat .

ENDFORM. " prepare_field_catalog

&----


*& Form prepare_layout

&----


  • text

----


  • <--P_GS_LAYOUT text

----


FORM prepare_layout CHANGING PS_LAYOUT TYPE lvc_s_layo..

ps_layout-zebra = 'X' .

ps_layout-grid_title = 'Flights' .

ps_layout-smalltitle = 'X' .

ENDFORM. " prepare_layout

&----


*& Form exclude_tb_functions

&----


  • text

----


  • <--P_GT_EXCLUDE text

----


FORM exclude_tb_functions CHANGING PT_EXCLUDE TYPE ui_functions .

DATA ls_exclude TYPE ui_func.

ls_exclude = cl_gui_alv_grid=>mc_fc_maximum .

APPEND ls_exclude TO pt_exclude.

ls_exclude = cl_gui_alv_grid=>mc_fc_minimum .

APPEND ls_exclude TO pt_exclude.

ls_exclude = cl_gui_alv_grid=>mc_fc_subtot .

APPEND ls_exclude TO pt_exclude.

ls_exclude = cl_gui_alv_grid=>mc_fc_sum .

APPEND ls_exclude TO pt_exclude.

ls_exclude = cl_gui_alv_grid=>mc_fc_average .

APPEND ls_exclude TO pt_exclude.

ls_exclude = cl_gui_alv_grid=>mc_mb_sum .

APPEND ls_exclude TO pt_exclude.

ls_exclude = cl_gui_alv_grid=>MC_FC_SORT_ASC .

ENDFORM. " exclude_tb_functions

&----


*& Form prepare_sort_table

&----


  • text

----


FORM prepare_sort_table CHANGING pt_sort TYPE lvc_t_sort .

DATA ls_sort TYPE lvc_s_sort .

ls_sort-spos = '1' .

ls_sort-fieldname = 'CARRID' .

ls_sort-up = 'X' . "A to Z

ls_sort-down = space .

APPEND ls_sort TO pt_sort .

ls_sort-spos = '2' .

ls_sort-fieldname = 'SEATSOCC' .

ls_sort-up = space .

ls_sort-down = 'X' . "Z to A

APPEND ls_sort TO pt_sort .

ENDFORM.

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

*--Creating an instance for the event handler

case sy-ucomm.

when 'EXIT'.

leave program.

when 'FCAT'.

*--- changing fieldcatalog during program execution

CALL METHOD gr_alvgrid->get_frontend_fieldcatalog

IMPORTING

et_fieldcatalog = lt_fcat[] .

LOOP AT lt_fcat INTO ls_fcat .

IF ls_fcat-fieldname = 'PAYMENTSUM' .

*ls_fcat-no_out = space .

ls_fcat-do_sum = 'X'.

MODIFY lt_fcat FROM ls_fcat .

ENDIF .

ENDLOOP .

CALL METHOD gr_alvgrid->set_frontend_fieldcatalog

EXPORTING

it_fieldcatalog = lt_fcat[] .

when 'LOUT'.

*--- changing layout during program execution

CALL METHOD gr_alvgrid->get_frontend_layout

IMPORTING

es_layout = ls_layout .

ls_layout-zebra = ' ' .

ls_layout-grid_title = 'Flights (with Payment Sums)' .

CALL METHOD gr_alvgrid->set_frontend_layout

EXPORTING

is_layout = ls_layout .

*--- filter

when 'SORT'.

when 'FILTER'.

endcase.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Form prepare_filter_table

&----


  • text

----


  • <--P_GT_FILT text

----


FORM prepare_filter_table CHANGING PT_FILT TYPE LVC_T_FILT.

DATA ls_filt TYPE lvc_s_filt .

ls_filt-fieldname = 'CARRID' .

ls_filt-sign = 'E' .

ls_filt-option = 'BT' .

ls_filt-low = 'AA' .

ls_filt-high = 'AZ' .

APPEND ls_filt TO pt_filt .

ENDFORM. " prepare_filter_table

&----


*& Form prepare_hyperlinks_table

&----


  • text

----


  • <--P_GT_HYPE text

----


FORM prepare_hyperlinks_table CHANGING PT_HYPE TYPE lvc_T_hype.

DATA ls_hype TYPE lvc_s_hype .

ls_hype-handle = '1' .

ls_hype-href = 'http://www.company.com/carrids/car1' .

APPEND ls_hype TO pt_hype .

ls_hype-handle = '2' .

ls_hype-href = 'http://www.company.com/carrids/car1' .

APPEND ls_hype TO pt_hype .

ls_hype-handle = '3' .

ls_hype-href = 'http://www.company.com/carrids/car1' .

APPEND ls_hype TO pt_hype .

ls_hype-handle = '4' .

ls_hype-href = 'http://www.company.com/connids/con11' .

APPEND ls_hype TO pt_hype .

ls_hype-handle = '5' .

ls_hype-href = 'http://www.company.com/connids/con12' .

APPEND ls_hype TO pt_hype .

LOOP AT gt_list .

IF gt_list-carrid = 'XX'.

gt_list-carrid_handle = '1' .

IF gt_list-connid = '01' .

gt_list-connid_handle = '4' .

ENDIF .

MODIFY gt_list .

ENDIF .

ENDLOOP .

ENDFORM. " prepare_hyperlinks_table

&----


*& Form handle_double_click

&----


  • text

----


  • -->P_E_ROW text

  • -->P_E_COLUMN text

  • -->P_ES_ROW_NO text

----


FORM handle_double_click USING i_row_id TYPE lvc_s_row

i_column_id TYPE lvc_s_col

is_row_no TYPE lvc_s_roid.

READ TABLE gt_list INDEX is_row_no-row_id .

IF sy-subrc = 0 AND i_column_id-fieldname = 'SEATSOCC' .

CALL TRANSACTION 'SE11'.

ENDIF.

ENDFORM. " handle_double_click

Former Member
0 Kudos

Hi,

BCALV_EDIT_01

BCALV_EDIT_02

BCALV_EDIT_03

BCALV_EDIT_04

BCALV_EDIT_05

BCALV_EDIT_06

BCALV_EDIT_07

BCALV_EDIT_08

Also look at BCALVGRID Programs.

ALV Reporting using Controls - Part I /people/ravikumar.allampallam/blog/2005/06/01/alv-reporting-using-controls--part-i

ALV Reporting using Controls (Control Layouts) - Part II /people/ravikumar.allampallam/blog/2005/06/01/alv-reporting-using-controls-control-layouts--part-ii

The weblogs will give you step by step.

Regards,

Ravi

Note : Please close the thread if the question is answered and mark all the helpful answers

Former Member
0 Kudos

Hi Tripathy,

There were many Standard Examples available, you can check them with BCALV*. Apart from you can check Enjoy Display Transactions where sap used mostly OO-ABAP.

<i>Hope This Info Helps YOU.</i>

Regards,

Lakshmi

former_member480923
Active Contributor
0 Kudos

HI

try thsi Link

<a href="http://www.sapdevelopment.co.uk/reporting/alv/alvtree/alvtree_mainsetup.htm">Tree developemnt using OO</a>

hope this Helps

Anirban

Former Member
0 Kudos

Hi,

refer this site:

http://www.allsaplinks.com/alv1.html

rgds,

latheesh