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

write alv report using oop concept

Former Member
0 Likes
388

hi abapers, i'm try to write a alv report using oo concept ... but currenly i'm stuck to convert from FM (function module) to OO Alv. this my snap shop of my prog.

DATA: display_settings TYPE REF TO cl_salv_display_settings.

DATA: salv_table TYPE REF TO cl_salv_table.

DATA: error TYPE REF TO cx_root.

DATA: errtext TYPE string.

----


  • C.L.A.S.S lcl_main D.E.F.I.N.I.T.I.O.N

----


CLASS lcl_main DEFINITION.

PUBLIC SECTION.

METHODS:get_data,

write_output.

EVENTS: no_data.

PRIVATE SECTION.

data:set_display_setting TYPE REF TO cl_salv_table.

*----


  • Local Data

*----


  • details listing by WBS is selected

TYPES: BEGIN OF st_wbs,

rsnum TYPE zmeime002a-rsnum,

rspos TYPE zmeime002a-rspos,

a TYPE zmmgitab01-menge, "previous month GI quantity

b TYPE zmeime002a-bdmng, "Requirement month GI Quantity

c TYPE zmeime002a-bdmng , "Actual Requirement Quantity

d TYPE zmeime002a-bdmng, "Actual Requirement Balance

e TYPE zmeime002a-bdmng, "Actual Reqn Quantity with MATR

f TYPE zmmgitab01-menge, "overall GI qty

g TYPE zmmgitab01-menge, "matr GI qty

qrtn TYPE zmmgitab01-menge, "quantitty returned

areq TYPE zmmgitab01-menge, "actual req value

amatr TYPE zmmgitab01-menge, "actual req value with MATR value

gival TYPE zmmgitab01-menge, "overall GI value

matrval TYPE zmmgitab01-menge, "MATR GI value

END OF st_wbs.

DATA: it_wbs TYPE TABLE OF st_wbs.

DATA : wa_wbs LIKE LINE OF it_wbs.

ENDCLASS.

----


  • C.L.A.S.S lcl_handler D.E.F.I.N.I.T.I.O.N

----


CLASS lcl_handler DEFINITION.

PUBLIC SECTION.

METHODS handle_event FOR EVENT no_data OF lcl_main.

ENDCLASS.

----


  • C.L.A.S.S lcl_handler I.M.P.L.E.M.E.N.T.A.T.I.O.N

----


CLASS lcl_handler IMPLEMENTATION.

METHOD handle_event.

MESSAGE i398(00) WITH 'No entries exist for this selection !'.

LEAVE LIST-PROCESSING.

ENDMETHOD.

ENDCLASS.

*----


  • M.A.I.N. .P.R.O.G.R.A.M.

*----


START-OF-SELECTION.

DATA: o_main TYPE REF TO lcl_main,

o_handler TYPE REF TO lcl_handler.

CREATE OBJECT: o_main,o_kpi,o_handler.

SET HANDLER o_handler->handle_event FOR ALL INSTANCES.

CALL METHOD o_main->get_data.

CALL METHOD o_main->write_output.

----


  • C.L.A.S.S lcl_main I.M.P.L.E.M.E.N.T.A.T.I.O.N

----


CLASS lcl_main IMPLEMENTATION.

METHOD get_data.

*********i run some select statement into IT_WBS********

ENDMETHOD.

METHOD write_output.

cl_salv_table=>factory(

EXPORTING

list_display = if_salv_c_bool_sap=>false

IMPORTING

r_salv_table = salv_table

CHANGING

t_table = it_wbs

).

PERFORM define_settings USING salv_table.

salv_table->display( ).

ENDMETHOD.

ENDCLASS.

########i want to change this FM ALV into OO concept ######

FORM define_settings USING p_salv_table TYPE REF TO cl_salv_table.

PERFORM set_display_settings USING p_salv_table.

PERFORM set_columns USING p_salv_table.

PERFORM set_functions USING p_salv_table.

ENDFORM. " DEFINE_SETTINGS

FORM set_display_settings USING p_salv_table TYPE REF TO cl_salv_table.

display_settings = p_salv_table->get_display_settings( ).

display_settings->set_list_header( 'MMMs KPI Extraction' ).

display_settings->set_striped_pattern( 'X' ).

display_settings->set_horizontal_lines( '' ).

ENDFORM. " SET_DISPLAY_SETTINGS

FORM set_columns USING p_salv_table TYPE REF TO cl_salv_table.

DATA: columns_table TYPE REF TO cl_salv_columns_table.

DATA: column_table TYPE REF TO cl_salv_column_table.

columns_table = p_salv_table->get_columns( ).

column_table ?= columns_table->get_column( columnname = 'RSNUM' ).

column_table->set_medium_text( 'Reservation number' ).

column_table->set_output_length( '15' ).

column_table ?= columns_table->get_column( columnname = 'RSPOS' ).

column_table->set_short_text( 'Item' ).

column_table ?= columns_table->get_column( columnname = 'A' ).

column_table->set_long_text( 'A-Prev month GI' ).

column_table->set_output_length( '15' ).

column_table ?= columns_table->get_column( columnname = 'B' ).

column_table->set_long_text( 'B-Req Quan' ).

column_table ?= columns_table->get_column( columnname = 'C' ).

column_table->set_long_text( 'C-Actual Req' ).

column_table ?= columns_table->get_column( columnname = 'D' ).

column_table->set_long_text( 'D-Actual Req Bal' ).

column_table ?= columns_table->get_column( columnname = 'E' ).

column_table->set_long_text( 'E-Actual Req MATR' ).

column_table ?= columns_table->get_column( columnname = 'F' ).

column_table->set_long_text( 'F-Overall GI' ).

column_table ?= columns_table->get_column( columnname = 'G' ).

column_table->set_long_text( 'G-Qty Return' ).

column_table ?= columns_table->get_column( columnname = 'QRTN' ).

column_table->set_long_text( 'Qty Return' ).

column_table ?= columns_table->get_column( columnname = 'AREQ' ).

column_table->set_long_text( 'Actual Req Val' ).

column_table ?= columns_table->get_column( columnname = 'AMATR' ).

column_table->set_long_text( 'Actual Req Val-MATR' ).

column_table ?= columns_table->get_column( columnname = 'GIVAL' ).

column_table->set_long_text( 'Overall GI value' ).

column_table ?= columns_table->get_column( columnname = 'MATRVAL' ).

column_table->set_long_text( 'MATR GI value' ).

ENDFORM. " SET_COLUMNS

FORM set_functions USING p_salv_table TYPE REF TO cl_salv_table.

DATA : functions_list TYPE REF TO cl_salv_functions_list.

functions_list = p_salv_table->get_functions( ).

functions_list->set_default( ).

functions_list->set_view_excel( ).

functions_list->set_view_grid( ).

functions_list->set_group_view( ).

ENDFORM.

Edited by: firdaus hashim on Jan 15, 2009 9:04 AM

1 REPLY 1
Read only

Former Member
0 Likes
327

i already findn the solution