05-24-2006 6:53 AM
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
05-24-2006 6:55 AM
05-24-2006 6:55 AM
05-24-2006 6:55 AM
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
05-24-2006 6:58 AM
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
05-24-2006 6:59 AM
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
05-24-2006 7:02 AM
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
05-24-2006 7:22 AM
05-24-2006 7:29 AM
Hi Tripathy,
You can find nice docs on OO ALV from these links...
http://esnips.com/doc/b708766f-a934-42a1-8064-c4de75b48fc4/Sample-Program-of-alv-using-oops.ppt
http://esnips.com/doc/a2e42503-cf0f-4418-94ee-580f5900a81f/alv-with-oop.doc
http://esnips.com/doc/2d953590-e8c5-490c-a607-d1ab7cf517d7/ALV.pdf
http://esnips.com/doc/4e3e266b-5584-40ef-abf3-bb3a41c27bf4/Quick-Start-ALV.doc
Also find BCALV* in SE38 and you can get some programs on OO ALV...
Award points if found useful
Regards,
SP.