‎2008 May 19 1:15 PM
hi
experts
can anybody send a sample alv-reporting using oops concepts?
Thanks &Regards
Spandna
‎2008 May 21 7:28 AM
Hi spandana,
Please provide ur mail id. so that I can send u some sample alv reports using OOPS.
Thanks.
‎2008 May 21 10:15 AM
Check this link. It gives a sample of interactive ALV using OOPS.
http://www.saptechnical.com/Tutorials/ALV/Interactive/oops.htm
Also you have other ALV OOPS sample here in this link
http://www.saptechnical.com/Tutorials/ALV/ALVMainPage.htm
Do reward points if useful.
Thanks.
‎2008 May 21 10:19 AM
TYPE-POOLS: icon.
TYPES: BEGIN OF t_kna1,
kunnr TYPE kna1-kunnr,
land1 TYPE kna1-land1,
name1 TYPE kna1-name1,
END OF t_kna1.
DATA: i_kna1 TYPE STANDARD TABLE OF t_kna1,
wa_kna1 TYPE t_kna1,
c_flag TYPE c VALUE 'X'.
DATA: customer TYPE REF TO cl_gui_custom_container,
customer_grid TYPE REF TO cl_gui_alv_grid,
enable_disable TYPE REF TO cl_gui_control.
DATA: i_fieldcat TYPE lvc_t_fcat,
wa_fieldcat TYPE lvc_s_fcat,
wa_layout TYPE lvc_s_layo,
wa_variant TYPE disvariant,
save_ok TYPE sy-ucomm,
ok_code TYPE sy-ucomm.
CONSTANTS: c_container(8) TYPE c VALUE 'CUSTOMER'.
----
CLASS lcl_EVENT_receiver DEFINITION
----
*
----
CLASS lcl_event_receiver DEFINITION DEFERRED.
DATA: o_event_receiver TYPE REF TO lcl_event_receiver.
----
CLASS lcl_event_receiver DEFINITION
----
*
----
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING
e_object e_interactive,
handle_usercommand FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING
e_ucomm,
handle_doubleclick FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING
e_row e_column es_row_no.
ENDCLASS. "lcl_event_receiver DEFINITIO
----
CLASS lcl_event_receiver IMPLEMENTATION
----
*
----
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_toolbar.
DATA: wa_toolbar_button TYPE stb_button.
wa_toolbar_button-function = 'CHANGE'.
wa_toolbar_button-icon = icon_change.
wa_toolbar_button-disabled = 'X'.
wa_toolbar_button-text = 'Change'.
wa_toolbar_button-quickinfo = 'Change customer'.
APPEND wa_toolbar_button TO e_object->mt_toolbar.
ENDMETHOD. "handle_toolbar
METHOD handle_usercommand.
CASE e_ucomm.
WHEN 'CHANGE'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMETHOD. "handle_usercommand
METHOD handle_doubleclick.
CALL TRANSACTION 'XD01'.
ENDMETHOD. "handle_usercommand
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
START-OF-SELECTION.
PERFORM f_getvalues.
END-OF-SELECTION.
PERFORM f_fieldcat USING: 'KUNNR' 'I_KNA1' 'Customer' '10',
'LAND1' 'I_KNA1' 'Country' '3' ,
'NAME1' 'I_KNA1' 'Name' '30'.
CALL SCREEN 100.
&----
*& Form f_getvalues
&----
text
----
--> p1 text
<-- p2 text
----
FORM f_getvalues .
SELECT kunnr land1 name1 FROM kna1 INTO TABLE i_kna1 WHERE land1 EQ 'IN'.
ENDFORM. " f_getvalues
&----
*& Module display_grid OUTPUT
&----
text
----
MODULE display_grid OUTPUT.
IF customer IS INITIAL.
CREATE OBJECT customer
EXPORTING
container_name = c_container.
CREATE OBJECT customer_grid
EXPORTING
i_parent = customer.
I_APPL_EVENTS = space
ENDIF.
wa_layout-sel_mode = 'D'.
wa_layout-edit = 'X'.
wa_variant-report = sy-repid.
CALL METHOD customer_grid->set_table_for_first_display
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
is_variant = wa_variant
i_save = 'A'
I_DEFAULT = 'X'
is_layout = wa_layout
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
IR_SALV_ADAPTER =
CHANGING
it_outtab = i_kna1
it_fieldcatalog = i_fieldcat.
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.
CREATE OBJECT o_event_receiver.
SET HANDLER o_event_receiver->handle_usercommand FOR customer_grid.
SET HANDLER o_event_receiver->handle_toolbar FOR customer_grid.
SET HANDLER o_event_receiver->handle_doubleclick FOR customer_grid.
CALL METHOD customer_grid->set_toolbar_interactive.
ENDMODULE. " display_grid OUTPUT
&----
*& Form f_fieldcat
&----
text
----
-->P_0067 text
-->P_0068 text
-->P_0069 text
-->P_0070 text
----
FORM f_fieldcat USING p_fname
p_tabname
p_fldtxt
p_fldlen.
wa_fieldcat-fieldname = p_fname.
wa_fieldcat-tabname = p_tabname.
wa_fieldcat-outputlen = p_fldlen.
wa_fieldcat-coltext = p_fldtxt.
APPEND wa_fieldcat TO i_fieldcat.
ENDFORM. " f_fieldcat
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE status_0100 OUTPUT.
SET PF-STATUS '100'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module cancel INPUT
&----
text
----
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE. " cancel INPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE user_command_0100 INPUT.
save_ok = ok_code.
CLEAR:ok_code.
CASE save_ok.
WHEN 'EDIT'.
DATA: i_rowindex TYPE lvc_t_row.
CALL METHOD customer_grid->get_selected_rows
IMPORTING
et_index_rows = i_rowindex.
ET_ROW_NO =
.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT