‎2008 Jan 16 9:58 AM
Hi experts!!
I 'm new to ABAP objects and i would like you, if possible, to provide me with some "real" code using objects.
All i find on the internet is small examples with airplanes, cars etc..
They are easy to understand as syntax but not realistic enough to understand the business use of objects.
Thanx in advance!!!
‎2008 Jan 16 12:19 PM
Hi,
take the program RSDEMO_CONTEXT_MENU_DYNPR in se38.
Hope this can help.
Regards,
Renjith Michael.
‎2008 Jan 16 12:34 PM
hi Iria,
----
CLASS lcl_alv DEFINITION
----
CLASS lcl_alv DEFINITION.
PUBLIC SECTION.
METHODS select_alv
IMPORTING amount TYPE i.
METHODS display_alv.
PROTECTED SECTION.
DATA: o_table TYPE REF TO cl_salv_table,
o_columns TYPE REF TO cl_salv_columns_table.
DATA t_alv TYPE STANDARD TABLE OF alv_tab.
METHODS set_alv_header.
METHODS set_alv_footer.
ENDCLASS. "lcl_alv DEFINITION
----
CLASS lcl_alv IMPLEMENTATION
----
CLASS lcl_alv IMPLEMENTATION.
METHOD select_alv.
SELECT *
FROM alv_tab
INTO CORRESPONDING FIELDS OF TABLE t_alv
UP TO amount ROWS.
ENDMETHOD. "SELECT_ALV
METHOD display_alv.
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = o_table
CHANGING
t_table = t_alv ).
CATCH cx_salv_msg.
ENDTRY.
o_columns = o_table->get_columns( ).
o_columns->set_optimize( abap_true ).
Set the alv Header
me->set_alv_header( ).
Set the alv Footer
me->set_alv_footer( ).
o_table->display( ).
ENDMETHOD. "display_alv
METHOD set_alv_header.
DATA: column TYPE i,
row TYPE i.
DATA: column_char TYPE c,
row_char TYPE c.
DATA: text TYPE string,
tooltip TYPE string.
DATA icon TYPE icon_d.
DATA: o_header_element TYPE REF TO cl_salv_form_layout_grid,
o_grid TYPE REF TO cl_salv_form_layout_grid,
o_header_info TYPE REF TO cl_salv_form_header_info,
o_action_info TYPE REF TO cl_salv_form_action_info,
o_text TYPE REF TO cl_salv_form_text,
t_data_grid TYPE STANDARD TABLE OF
REF TO cl_salv_form_layout_data_grid,
o_data_grid TYPE REF TO cl_salv_form_layout_data_grid,
o_icon TYPE REF TO cl_salv_form_icon.
Create an instance of Header objects
CREATE OBJECT o_header_element
EXPORTING
columns = 2.
Create a Text with layout HEADER INFORMATION
o_header_info = o_header_element->create_header_information(
row = 1
column = 1
text = 'Text of Header Info'
tooltip = 'Tooltip of Header Info' ).
Create a Text with layout ACTION INFORMATION
o_action_info = o_header_element->create_action_information(
row = 2
column = 1
text = 'Text of Action Info'
tooltip = 'Tooltip of Action Info' ). "#EC NOTEXT
Create a Grid with 4 rows and 3 columns
o_grid = o_header_element->create_grid( row = 4 column = 3 ).
DO 4 TIMES.
ADD 1 TO row.
DO 3 TIMES.
ADD 1 TO column.
MOVE column TO column_char.
MOVE row TO row_char.
CONCATENATE 'Text of' column_char 'column in line' row_char
INTO text SEPARATED BY space.
CONCATENATE 'Tooltip of' column_char 'column in line' row_char
INTO tooltip SEPARATED BY space.
Insert a text into on the <column> of <row> line
o_text = o_grid->create_text(
row = row
column = column
text = text
tooltip = tooltip ).
Get the layout of grid
o_data_grid ?= o_text->get_layout_data( ).
APPEND o_data_grid TO t_data_grid.
CLEAR o_text.
ENDDO.
CASE row.
WHEN 1.
MOVE '@19@' TO icon.
tooltip = 'Information Message'.
WHEN 2.
MOVE '@1A@' TO icon.
tooltip = 'Warning Message'.
WHEN 3.
MOVE '@1B@' TO icon.
tooltip = 'Error Message'.
WHEN 4.
MOVE '@1C@' TO icon.
tooltip = 'Question Message'.
ENDCASE.
Create an instance of Icon Objects
CREATE OBJECT o_icon
EXPORTING
icon = icon
tooltip = tooltip.
Set Icon on Grid
CALL METHOD o_grid->set_element
EXPORTING
row = row
column = 4
r_element = o_icon.
CLEAR column.
ENDDO.
Set Header to Top of ALV
o_table->set_top_of_list( o_header_element ).
ENDMETHOD. "set_alv_header
METHOD set_alv_footer.
DATA: column TYPE i,
row TYPE i.
DATA: column_char TYPE c,
row_char TYPE c.
DATA: text TYPE string,
tooltip TYPE string.
DATA icon TYPE icon_d.
DATA: o_footer_element TYPE REF TO cl_salv_form_layout_grid,
o_grid TYPE REF TO cl_salv_form_layout_grid,
o_header_info TYPE REF TO cl_salv_form_header_info,
o_action_info TYPE REF TO cl_salv_form_action_info,
o_text TYPE REF TO cl_salv_form_text,
t_data_grid TYPE STANDARD TABLE OF
REF TO cl_salv_form_layout_data_grid,
o_data_grid TYPE REF TO cl_salv_form_layout_data_grid,
o_icon TYPE REF TO cl_salv_form_icon.
Create an instance of Footer objects
CREATE OBJECT o_footer_element
EXPORTING
columns = 2.
Create a Text with layout HEADER INFORMATION
o_header_info = o_footer_element->create_header_information(
row = 1
column = 1
text = 'Text of Footer Info'
tooltip = 'Tooltip of Footer Info' ).
Create a Text with layout ACTION INFORMATION
o_action_info = o_footer_element->create_action_information(
row = 2
column = 1
text = 'Text of Action Info'
tooltip = 'Tooltip of Action Info' ). "#EC NOTEXT
Create a Grid with 3 rows and 3 columns
o_grid = o_footer_element->create_grid( row = 4 column = 3 ).
DO 4 TIMES.
ADD 1 TO row.
DO 2 TIMES.
ADD 1 TO column.
MOVE column TO column_char.
MOVE row TO row_char.
CONCATENATE 'Text of' column_char 'column in line' row_char
INTO text SEPARATED BY space.
CONCATENATE 'Tooltip of' column_char 'column in line' row_char
INTO tooltip SEPARATED BY space.
Insert a text into on the <column> of <row> line
o_text = o_grid->create_text(
row = row
column = column
text = text
tooltip = tooltip ).
Get the layout of grid
o_data_grid ?= o_text->get_layout_data( ).
APPEND o_data_grid TO t_data_grid.
CLEAR o_text.
ENDDO.
CASE row.
WHEN 1.
MOVE '@19@' TO icon.
tooltip = 'Information Message'.
WHEN 2.
MOVE '@1A@' TO icon.
tooltip = 'Warning Message'.
WHEN 3.
MOVE '@1B@' TO icon.
tooltip = 'Error Message'.
WHEN 4.
MOVE '@1C@' TO icon.
tooltip = 'Question Message'.
ENDCASE.
Set Icon on Grid
CREATE OBJECT o_icon
EXPORTING
icon = icon
tooltip = tooltip.
Create an instance of Icon Objects
CALL METHOD o_grid->set_element
EXPORTING
row = row
column = 3
r_element = o_icon.
CLEAR column.
ENDDO.
Set Header to Top of ALV
o_table->set_end_of_list( o_footer_element ).
ENDMETHOD. "set_alv_footer
ENDCLASS. "lcl_alv IMPLEMENTATION
DATA o_alv TYPE REF TO lcl_alv.
START-OF-SELECTION.
CREATE OBJECT o_alv.
o_alv->select_alv( 30 ).
o_alv->display_alv( ).
Hope this is helpful, Do reward.
‎2008 Feb 28 10:14 AM
Hi,
Please refer this site,its help u lot with screen-shots to undestand easly. there u can find number of examples on any topic. ok site is [http://www.saptechnical.com/Tutorials/OOPS/MainPage.htm]
Reward Points if usefull to u...
*Regards
**Fareedas
‎2008 Feb 28 10:20 AM
REPORT ZCL_SALES_GRID4 .
DATA: O_GRID TYPE REF TO CL_GUI_ALV_GRID.
TYPES: BEGIN OF T_MARA,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
WERKS LIKE MARD-WERKS,
LGORT LIKE MARD-LGORT,
END OF T_MARA.
DATA: IT_MARA TYPE STANDARD TABLE OF T_MARA.
PARAMETERS: P_MATNR LIKE MARA-MATNR.
DATA: I_FLDCAT TYPE LVC_T_FCAT,
X_FLDCAT TYPE LVC_S_FCAT.
DATA: X_LAYO TYPE LVC_S_LAYO.
DATA: X_GROUP TYPE LVC_S_SGRP,
I_GROUP TYPE LVC_T_SGRP.
DATA: X_SORT TYPE LVC_S_SORT,
I_SORT TYPE LVC_T_SORT.
*Type Declarations for Displaying Images on Grid
DATA : I_COMMENT TYPE SLIS_T_LISTHEADER,
WA_COMMENT TYPE SLIS_LISTHEADER.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM GENERATE_FLDCAT.
PERFORM GENERATE_LAYOUT.
PERFORM DO_GROUP.
PERFORM DO_SORT.
PERFORM SHOW_GRID.
&----
*& Form GET_DATA
&----
text
----
FORM GET_DATA.
SELECT A~MATNR
B~MAKTX
C~WERKS
C~LGORT
INTO TABLE IT_MARA
FROM MARA AS A
INNER JOIN MAKT AS B
ON BMATNR = AMATNR
INNER JOIN MARD AS C
ON CMATNR = AMATNR
WHERE B~SPRAS = SY-LANGU
AND A~MATNR = P_MATNR.
ENDFORM. " GET_DATA
&----
*& Form SHOW_GRID
&----
text
----
FORM SHOW_GRID.
CREATE OBJECT O_GRID
EXPORTING
I_SHELLSTYLE = 0
I_LIFETIME =
I_PARENT = cl_gui_custom_container=>SCREEN0
I_APPL_EVENTS = space
I_PARENTDBG =
I_APPLOGPARENT =
I_GRAPHICSPARENT =
I_USE_VARIANT_CLASS = SPACE
I_NAME =
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
others = 5.
IF SY-SUBRC = 0.
CALL METHOD O_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME = ' '
IS_VARIANT =
I_SAVE =
I_DEFAULT = 'X'
IS_LAYOUT = X_LAYO
IS_PRINT =
IT_SPECIAL_GROUPS = I_GROUP
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
CHANGING
IT_OUTTAB = IT_MARA
IT_FIELDCATALOG = I_FLDCAT
IT_SORT = I_SORT
IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
others = 4.
SET SCREEN 100.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDFORM. " SHOW_GRID
&----
*& Form GENERATE_FLDCAT
&----
text
----
FORM GENERATE_FLDCAT.
X_FLDCAT-FIELDNAME = 'MATNR'.
X_FLDCAT-COL_POS = '1'.
X_FLDCAT-JUST = 'C'.
X_FLDCAT-OUTPUTLEN = '18'.
X_FLDCAT-COLTEXT = 'Material Code'. "middle key word
X_FLDCAT-REF_TABLE = ' '.
APPEND X_FLDCAT TO I_FLDCAT.
X_FLDCAT-FIELDNAME = 'MAKTX'.
X_FLDCAT-COL_POS = '2'.
X_FLDCAT-OUTPUTLEN = '40'.
X_FLDCAT-COLTEXT = 'Item Name'.
APPEND X_FLDCAT TO I_FLDCAT.
X_FLDCAT-FIELDNAME = 'WERKS'.
X_FLDCAT-COL_POS = '3'.
X_FLDCAT-OUTPUTLEN = '10'.
X_FLDCAT-COLTEXT = 'Plant'.
APPEND X_FLDCAT TO I_FLDCAT.
X_FLDCAT-FIELDNAME = 'LGORT'.
X_FLDCAT-COL_POS = '4'.
X_FLDCAT-OUTPUTLEN = '20'.
X_FLDCAT-COLTEXT = 'Location'.
APPEND X_FLDCAT TO I_FLDCAT.
ENDFORM. " GENERATE_FLDCAT
&----
*& Form GENERATE_LAYOUT
&----
text
----
FORM GENERATE_LAYOUT.
X_LAYO-ZEBRA = 'X'.
X_LAYO-NO_HEADERS = 'X'.
X_LAYO-CWIDTH_OPT = 'X'.
*X_LAYO-NO_HGRIDLN = 'X'.
*X_LAYO-NO_VGRIDLN = 'X'.
ENDFORM. " GENERATE_LAYOUT
&----
*& Form DO_GROUP
&----
text
----
FORM DO_GROUP.
X_GROUP-SP_GROUP = 'A'.
X_GROUP-TEXT = 'WERKS'.
APPEND X_GROUP TO I_GROUP.
ENDFORM. " DO_GROUP
&----
*& Form DO_SORT
&----
text
----
FORM DO_SORT.
X_SORT-UP = 'A'.
X_SORT-FIELDNAME = 'MATNR'.
APPEND X_SORT TO I_SORT.
ENDFORM. " DO_GROUP
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'ZM1'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
‎2008 Feb 28 10:21 AM
EVENT HANDLER METHODS
REPORT ZEVENT_HANDLER5
NO STANDARD PAGE HEADING.
CLASS c1 DEFINITION.
PUBLIC SECTION.
EVENTS : E1 EXPORTING value(NUM1) TYPE I
value(NUM2) TYPE I.
METHODS: M1 FOR EVENT E1 OF C1
IMPORTING NUM1
NUM2.
METHODS : T1.
ENDCLASS.
CLASS C1 IMPLEMENTATION.
METHOD : M1.
WRITE:/5 'First input ' , num1 .
write:/5 'Second input', num2 .
ENDMETHOD.
METHOD T1.
RAISE EVENT E1 exporting num1 = 2
num2 = 3.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA : oref TYPE REF TO c1.
CREATE OBJECT oref.
SET HANDLER oref->M1 for oref.
call method oref->T1.
‎2008 Feb 28 10:23 AM
alv invoice report
&----
*& Report ZLCL_ALV_INT_INVOICE *
*& *
&----
*& *
*& *
&----
REPORT ZLCL_ALV_INT_INVOICE .
DATA: O_CONT1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
O_CONT2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
O_GRID1 TYPE REF TO CL_GUI_ALV_GRID,
O_GRID2 TYPE REF TO CL_GUI_ALV_GRID.
DATA: IT_VBRK LIKE VBRK OCCURS 1 WITH HEADER LINE.
DATA: IT_VBRP LIKE VBRP OCCURS 1 WITH HEADER LINE.
DATA: WA_VBRK LIKE VBRK.
*--Layout
DATA: WA_LAYO TYPE LVC_S_LAYO.
----
CLASS LCL_BILLING DEFINITION
----
*
----
CLASS LCL_BILLING DEFINITION.
PUBLIC SECTION.
CLASS-METHODS: HANDLE_HOTSPOT_CLICK
FOR EVENT HOTSPOT_CLICK
OF CL_GUI_ALV_GRID
IMPORTING E_ROW_ID.
ENDCLASS. "LCL_BILLING DEFINITION
----
CLASS LCL_BILLING IMPLEMENTATION
----
*
----
CLASS LCL_BILLING IMPLEMENTATION.
METHOD HANDLE_HOTSPOT_CLICK.
IF NOT E_ROW_ID IS INITIAL.
*--Reading selected billing docno
READ TABLE IT_VBRK INTO WA_VBRK INDEX E_ROW_ID-INDEX.
*--GETTING BILLING DOC ITEMS
REFRESH IT_VBRP.
SELECT *
FROM VBRP
INTO TABLE IT_VBRP
WHERE VBELN = WA_VBRK-VBELN.
CALL SCREEN 200.
ENDIF.
ENDMETHOD. "HANDLE_HOTSPOT_CLICK
ENDCLASS. "LCL_BILLING IMPLEMENTATION
SELECT-OPTIONS: S_VBELN FOR IT_VBRK-VBELN.
START-OF-SELECTION.
PERFORM GET_DATA.
SET SCREEN 100.
&----
*& Form GET_DATA
&----
text
----
FORM GET_DATA .
*--billing header data
SELECT *
FROM VBRK
INTO TABLE IT_VBRK
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE I000(Z00) WITH 'No Data Found'.
ENDIF.
EXIT.
ENDFORM. " GET_DATA
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'MENU'.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
PERFORM EXIT_PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module PBO_100 OUTPUT
&----
text
----
MODULE PBO_100 OUTPUT.
IF O_CONT1 IS INITIAL.
CREATE OBJECT O_CONT1
EXPORTING
CONTAINER_NAME = 'VBRK_CONT'
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.
MESSAGE I000(Z00) WITH 'Error in container'.
EXIT.
ENDIF.
CREATE OBJECT O_GRID1
EXPORTING
I_PARENT = O_CONT1
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
MESSAGE I000(Z00) WITH 'Error in Grid'.
EXIT.
ENDIF.
ENDIF.
*--Layout for 1st grid
WA_LAYO-KEYHOT = 'X'.
WA_LAYO-GRID_TITLE = 'Billing Document Header Data'.
CALL METHOD O_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'VBRK'
IS_LAYOUT = WA_LAYO
CHANGING
IT_OUTTAB = IT_VBRK[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
MESSAGE I000(Z00) WITH 'Error in showing grid'.
EXIT.
ENDIF.
*-Setting the focus on the grid
CALL METHOD CL_GUI_CONTROL=>SET_FOCUS
EXPORTING
CONTROL = O_GRID1 "Grid control object
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE I000(Z00) WITH 'Error in setting focus'.
ENDIF.
*--Event handler registration
SET HANDLER LCL_BILLING=>HANDLE_HOTSPOT_CLICK FOR O_GRID1.
ENDMODULE. " PBO_100 OUTPUT
&----
*& Module STATUS_0200 OUTPUT
&----
text
----
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS 'MENU'.
ENDMODULE. " STATUS_0200 OUTPUT
&----
*& Module USER_COMMAND_0200 INPUT
&----
text
----
MODULE USER_COMMAND_0200 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
&----
*& Module PBO_200 OUTPUT
&----
text
----
MODULE PBO_200 OUTPUT.
IF O_CONT2 IS INITIAL.
CREATE OBJECT O_CONT2
EXPORTING
CONTAINER_NAME = 'VBRP_CONT'
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.
MESSAGE I000(Z00) WITH 'Error in container'.
EXIT.
ENDIF.
CREATE OBJECT O_GRID2
EXPORTING
I_PARENT = O_CONT2
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE I000(Z00) WITH 'Error in grid linking'.
EXIT.
ENDIF.
CALL METHOD O_GRID2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'VBRP'
CHANGING
IT_OUTTAB = IT_VBRP[]
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.
ELSE.
*--refreshing the alv grid with the latest content of the internal table
*--which is linked
CALL METHOD O_GRID2->REFRESH_TABLE_DISPLAY
EXCEPTIONS
FINISHED = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE I000(Z00) WITH 'Error in Refreshing gird'.
ENDIF.
ENDIF.
ENDMODULE. " PBO_200 OUTPUT
&----
*& Form EXIT_PROGRAM
&----
text
----
FORM EXIT_PROGRAM .
*--Deallocating the memory
IF NOT O_CONT2 IS INITIAL.
CALL METHOD O_CONT2->FREE
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE I000(Z00) WITH 'Error in deallocating memory'.
EXIT.
ENDIF.
CLEAR: IT_VBRP,
IT_VBRP[].
FREE: IT_VBRP,
IT_VBRP[].
ENDIF.
IF NOT O_CONT1 IS INITIAL.
CALL METHOD O_CONT1->FREE
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE I000(Z00) WITH 'Error in deallocating memory'.
EXIT.
ENDIF.
CLEAR: IT_VBRK,
IT_VBRK[].
FREE: IT_VBRK,
IT_VBRK[].
ENDIF.
*--Cearing the buffered content
CALL METHOD CL_GUI_CFW=>FLUSH
EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE I000(Z00) WITH 'Error in clearing Buffer'.
EXIT.
ENDIF.
LEAVE PROGRAM.
ENDFORM. " EXIT_PROGRAM
FOR SCREEN 100
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
MODULE PBO_100.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
FOR SCREEN 200
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
MODULE PBO_200.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0200.
‎2008 Feb 28 10:24 AM
YOU CAN REFER TO THIS LINKS ALSO
http://www.sapdev.co.uk/reporting/alv/alvobjgrid/alvobject_sort.htm
http://www.sapdev.co.uk/reporting/alv/alvtree/alvtree_basic.htm