‎2007 Jul 25 12:40 AM
Hi folks,
I have developed an ALV grid in CRM to show activities. I have also enabled double click on the ALV grid which would take to the control to the CRM activity transaction for the selected line item on ALV grid.
My requirement is i change the status on the activity when im in CRM transaction save it and when i go back, i need a refresh button on the ALV grid which would update the lineitem status value.
I have created the refresh button and tried calling the subroutine which collects the data. but did not work. can somebody suggest what to do?
Thanks.
‎2007 Jul 25 12:54 AM
‎2007 Jul 25 1:08 AM
nope that did not work rich
here is my Code.
METHOD handle_user_command.
§ 4.At event USER_COMMAND query the function code of each function
defined in step 3.
*.........
Part III : Evaluate user command to invoke the corresponding
function.
*.........
DATA: lt_rows TYPE lvc_t_row.
get selected row
CALL METHOD grid1->get_selected_rows
IMPORTING
et_index_rows = lt_rows.
CALL METHOD cl_gui_cfw=>flush.
IF sy-subrc NE 0.
add your handling, for example
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = g_repid
txt2 = sy-subrc
txt1 = 'Error in Flush'(500).
ENDIF.
go to other table
CASE e_ucomm.
WHEN 'REFRESH'.
PERFORM alv_output.
CALL METHOD grid1->refresh_table_display.
ENDCASE.
ENDMETHOD. "handle_user_command
form alv_output.
IF custom_container1 IS INITIAL.
Get worklist data
PERFORM get_view_list changing it_alv.
SORT it_alv BY process_type.
CREATE OBJECT custom_container1
EXPORTING
container_name = cont_on_100.
CREATE OBJECT grid1
EXPORTING
i_parent = custom_container1.
*..............................................
set some layout-values (Structure LVC_S_LAYO)
*..............................................
Set a titlebar for the grid control
*
MOVE p_vari TO spec_layout-variant.
MOVE g_repid TO spec_layout-report.
MOVE-CORRESPONDING spec_layout TO gs_variant.
gs_layout-grid_title = text-100.
gs_variant-report = sy-repid.
CALL METHOD grid1->set_table_for_first_display
EXPORTING
i_buffer_active = ' '
i_default = 'X'
i_bypassing_buffer = 'X'
i_structure_name = 'zrr_ut_er_wrklist'
is_variant = gs_variant
is_layout = gs_layout
i_save = x_save
CHANGING
it_outtab = it_alv.
it_fieldcatalog = fieldcat.
SET HANDLER lcl_event_receiver=>handle_user_command
lcl_event_receiver=>handle_menu_button
lcl_event_receiver=>handle_toolbar
lcl_event_receiver=>handle_double_click FOR ALL INSTANCES.
CALL METHOD grid1->set_toolbar_interactive.
ENDIF.
CALL METHOD cl_gui_control=>set_focus
EXPORTING
control = grid1.
endform.
‎2007 Jul 25 1:13 AM
Nope, nope, nope. In this code, you are totally rebuilding the container and everything. You only need to rebuild the internal table which is holding your data which is displayed in the ALV, so I assume that you have some other FORM which gets your data and fills your internal table, if so, call this here instead of the ALV_OUTPUT.
WHEN 'REFRESH'.
PERFORM GET_DATA "<-------- GET DATA, not build ALV.
CALL METHOD grid1->refresh_table_display.Regards,
Rich Heilman
‎2007 Jul 25 7:44 AM
Sorry Rich but it's even easier than that.
Here's a program I've used as a model
You can add other routines for different events etc
most of what you need is here.
program ZJIMBOTESTX.
DEFINE col_name.
read table it_fldcat into wa_it_fldcat index &1.
wa_it_fldcat-coltext = &2.
modify it_fldcat from wa_it_fldcat index &1.
end-of-definition.
Jimbo 2007.
FIELD-SYMBOLS :
<fs1> TYPE ANY,
<fs2> TYPE STANDARD TABLE,
<field_catalog> TYPE STANDARD TABLE,
<dyn_table> TYPE STANDARD TABLE,
<orig_table> TYPE STANDARD TABLE,
<dyn_field>,
<dyn_wa>.
INCLUDE ZZJIMBOXX_INCL. "Class definition and impl.
code shown at the end of this pgm.
INCLUDE <icon>.
TABLES : KNA1.
TYPES: BEGIN OF s_elements,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
stras TYPE kna1-stras,
telf1 TYPE kna1-telf1,
ort01 TYPE kna1-ort01,
pstlz TYPE kna1-pstlz,
END OF s_elements.
DATA: z_object type ref to zcl_dog, "Instantiate our class
grid_container1 type ref to cl_gui_custom_container,
t_elements TYPE TABLE OF s_elements, "refers to our ITAB
wa_elements TYPE s_elements,
wa_dyn_table_line TYPE REF TO DATA,
it_fldcat TYPE lvc_t_fcat,
wa_it_fldcat TYPE lvc_s_fcat,
new_table TYPE REF TO DATA,
dy_table TYPE REF TO data,
dy_line TYPE REF TO data.
START-OF-SELECTION.
CALL SCREEN 100.
END-OF-SELECTION.
MODULE status_0100 OUTPUT.
ASSIGN wa_elements TO <fs1>.
CREATE OBJECT z_object EXPORTING z_object = z_object.
i_parent = grid_container1.
CALL METHOD z_object->build_dynamic_structures
CHANGING it_fldcat = it_fldcat.
Here before displaying you can change the field catalog to
adjust your own names
Method call just uses the names in the table structure.
col_name 1 'Customer'.
col_name 2 'Name'.
col_name 3 'Street'.
col_name 4 'Phone'.
col_name 5 'City'.
col_name 6 'Post Code'.
PERFORM populate_dynamic_itab.
CALL METHOD z_object->display_grid
CHANGING it_fldcat = it_fldcat.
SET PF-STATUS '0001'.
SET TITLEBAR '000'.
ENDMODULE.
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'RETURN'.
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
ENDMODULE.
FORM populate_dynamic_itab.
SELECT kunnr name1 stras telf1 ort01 pstlz
UP TO 200 rows
FROM KNA1
INTO CORRESPONDING FIELDS OF TABLE <dyn_table>.
Populate Dynamic table and save a copy
create 2nd Dyn table to hold original data
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fldcat
IMPORTING
ep_table = dy_table.
ASSIGN dy_table->* TO <orig_table>.
CREATE DATA dy_line LIKE LINE OF <orig_table>.
ASSIGN dy_line->* TO <dyn_wa>.
<orig_table> = <dyn_table>.
ENDFORM.
FORM VERWERK.
break-point 1.
This routine is called from the CLASS
defined the INCLUDE.
Entered when VERW Button is pressed. You could use
This as your REFRESH section
Change the button in the class definition from VERW
To REFR to make it easier.
Orig table is in dynamic table <orig_table>
ALV GRID changed table is in <dyn_table>.
Loop at <orig_table> into <dyn_wa>.
Do what you want with the relevant data
end
endloop.
ENDFORM.
This routine is also called from the CLASS
defined the INCLUDE and is entered when a cell is
double clicked.
FORM DUBBLEKLIK
USING
e_row type LVC_S_ROW
e_column type LVC_S_col
es_row_no type lvc_s_roid.
break-point 1.
endform.
If you look at subroutine verwerk (or dubbleklik or a similar one you can code)
you've got the row and column id of the changed data.
You've got the original table in <orig_table> and the current "changed"table from the ALV GRID in <dyn_table>.
Just refresh your <dyn> table and re-display the grid or perform your transaction or whatever.
Here's the CLASS definition (in the INCLUDE ZZJIMBOXX_INCL.)
I've used this class as a template for loads of these types of ABAPS --always works without problem.
If you want to use the program and class as is then code a blank screen with a custom container called CCONTAINER1 and for neatness add a standard SE41 status so you get the standard SAP toolbars at the top of the screen (optional).
*******************INCLUDE ZZJIMBOXX_INCL***************************
*
CLASS zcl_dog DEFINITION.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING z_object type ref to zcl_dog,
display_grid
CHANGING it_fldcat type lvc_t_fcat,
build_dynamic_structures
CHANGING it_fldcat TYPE lvc_t_fcat.
PRIVATE SECTION.
METHODS:
on_user_command FOR EVENT before_user_command OF cl_gui_alv_grid
IMPORTING e_ucomm
sender,
on_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object
e_interactive,
on_dubbelklik FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row
e_column
es_row_no,
handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed,
handle_data_changed_finished
FOR EVENT data_changed_finished OF cl_gui_alv_grid
IMPORTING e_modified
et_good_cells,
verwerk
IMPORTING program TYPE sy-repid,
download_to_excel,
dubbleklik
IMPORTING
e_row type LVC_S_ROW
e_column TYPE LVC_S_COL
es_row_no type lvc_s_ROID
program type sy-repid,
return_structure,
create_dynamic_fcat
EXPORTING it_fldcat TYPE lvc_t_fcat,
create_dynamic_table
IMPORTING it_fldcat TYPE lvc_t_fcat
EXPORTING dy_table TYPE REF TO DATA.
DATA:
lr_rtti_struc TYPE REF TO cl_abap_structdescr, "RTTI
zog LIKE LINE OF lr_rtti_struc->components, "RTTI
wa_it_fldcat TYPE lvc_s_fcat,
it_fldcat TYPE lvc_t_fcat,
dy_table TYPE REF TO data,
dy_line TYPE REF TO data,
struct_grid_lset TYPE lvc_s_layo,
e_row TYPE LVC_S_ROW,
e_column TYPE lvc_s_col,
es_rowid TYPE lvc_s_roid,
grid_container1 TYPE REF TO cl_gui_custom_container,
grid1 TYPE REF TO cl_gui_alv_grid,
ls_layout TYPE kkblo_layout,
lt_fieldcat_wa TYPE kkblo_fieldcat,
l_mode TYPE raw4,
celltab TYPE LVC_T_STYL,
wa_celltab TYPE lvc_s_styl,
lt_fieldcat TYPE kkblo_t_fieldcat,
l_tabname TYPE slis_tabname.
TYPES:
struc LIKE zog.
DATA:
zogt TYPE TABLE OF struc.
ENDCLASS.
CLASS zcl_dog IMPLEMENTATION.
METHOD constructor.
CREATE OBJECT grid_container1
EXPORTING
container_name = 'CCONTAINER1'.
CREATE OBJECT grid1
EXPORTING
i_parent = grid_container1.
SET HANDLER z_object->on_user_command for grid1.
SET HANDLER z_object->on_toolbar for grid1.
SET HANDLER Z_OBJECT->handle_data_changed_finished FOR grid1.
SET HANDLER Z_OBJECT->on_dubbelklik FOR grid1.
CALL METHOD grid1->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
ENDMETHOD.
METHOD on_dubbelklik.
CALL METHOD me->dubbleklik
EXPORTING
e_row = e_row
e_column = e_column
es_row_no = es_row_no
program = sy-repid.
break-point 1.
ENDMETHOD.
METHOD handle_data_changed.
Insert user code here if required
this method is entered if user ENTERS DATA.
ENDMETHOD.
METHOD handle_data_changed_finished.
Insert user code here if required
Method entered here after data entry has finished.
ENDMETHOD.
METHOD return_structure.
lr_rtti_struc ?= cl_abap_structdescr=>DESCRIBE_BY_DATA( <fs1> ).
zogt[] = lr_rtti_struc->components.
ASSIGN zogt[] TO <fs2>.
ENDMETHOD.
METHOD create_dynamic_fcat.
LOOP AT <fs2> INTO zog.
CLEAR wa_it_fldcat.
wa_it_fldcat-fieldname = zog-name .
wa_it_fldcat-datatype = zog-type_kind.
wa_it_fldcat-inttype = zog-type_kind.
wa_it_fldcat-intlen = zog-length.
wa_it_fldcat-decimals = zog-decimals.
wa_it_fldcat-coltext = zog-name.
wa_it_fldcat-lowercase = 'X'.
APPEND wa_it_fldcat TO it_fldcat .
ASSIGN it_fldcat[] TO <field_catalog>.
ENDLOOP.
ASSIGN it_fldcat[] TO <field_catalog>.
ENDMETHOD.
METHOD download_to_excel.
break-point 5.
CALL FUNCTION 'LVC_TRANSFER_TO_KKBLO'
EXPORTING
it_fieldcat_lvc = <field_catalog>
is_layout_lvc = m_cl_variant->ms_layout
is_tech_complete = ' '
IMPORTING
es_layout_kkblo = ls_layout
et_fieldcat_kkblo = lt_fieldcat.
LOOP AT lt_fieldcat INTO lt_fieldcat_wa.
CLEAR lt_fieldcat_wa-tech_complete.
IF lt_fieldcat_wa-tabname IS initial.
lt_fieldcat_wa-tabname = '1'.
MODIFY lt_fieldcat FROM lt_fieldcat_wa.
ENDIF.
l_tabname = lt_fieldcat_wa-tabname.
ENDLOOP.
CALL FUNCTION 'ALV_XXL_CALL'
EXPORTING
i_tabname = l_tabname
is_layout = ls_layout
it_fieldcat = lt_fieldcat
i_title = sy-title
TABLES
it_outtab = <dyn_table>
EXCEPTIONS
fatal_error = 1
no_display_possible = 2
others = 3.
IF sy-subrc <> 0.
message id sy-msgid type 'S' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDMETHOD.
METHOD create_dynamic_table.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fldcat
IMPORTING
ep_table = dy_table.
ENDMETHOD.
METHOD build_dynamic_structures.
CALL METHOD me->return_structure.
CALL METHOD me->create_dynamic_fcat
IMPORTING
it_fldcat = it_fldcat.
CALL METHOD me->create_dynamic_table
EXPORTING
it_fldcat = it_fldcat
IMPORTING
dy_table = dy_table.
ASSIGN dy_table->* TO <dyn_table>.
CREATE DATA dy_line LIKE LINE OF <dyn_table>.
ASSIGN dy_line->* TO <dyn_wa>.
ENDMETHOD.
METHOD display_grid.
struct_grid_lset-edit = 'X'. "To enable editing in ALV
struct_grid_lset-grid_title = 'Bulkwijzigingen inkoopprijzen'.
struct_grid_lset-ctab_fname = 'T_CELLCOLORS'.
struct_grid_lset-stylefname = 'CELLTAB'.
CALL METHOD grid1->set_ready_for_input
EXPORTING
i_ready_for_input = '1'.
CALL METHOD grid1->set_table_for_first_display
EXPORTING
is_layout = struct_grid_lset
CHANGING
it_outtab = <dyn_table>
it_fieldcatalog = it_fldcat.
ENDMETHOD.
METHOD on_user_command.
CASE e_ucomm.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'EXCEL'.
CALL METHOD me->download_to_excel.
WHEN 'SAVE'.
WHEN 'VERW'.
CALL METHOD me->verwerk
EXPORTING
PROGRAM = SY-REPID.
ENDCASE.
ENDMETHOD. "on_user_command
METHOD on_toolbar.
DATA: ls_toolbar TYPE stb_button.
CLEAR ls_toolbar.
MOVE 0 TO ls_toolbar-butn_type.
MOVE 'EXIT' TO ls_toolbar-function.
MOVE SPACE TO ls_toolbar-disabled.
MOVE icon_system_end TO ls_toolbar-icon.
MOVE 'Click2Exit' TO ls_toolbar-quickinfo.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 0 TO ls_toolbar-butn_type.
MOVE 'SAVE' TO ls_toolbar-function.
MOVE SPACE TO ls_toolbar-disabled.
MOVE icon_system_save TO ls_toolbar-icon.
MOVE 'Save data' TO ls_toolbar-quickinfo.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 0 TO ls_toolbar-butn_type.
MOVE 'EDIT' TO ls_toolbar-function.
MOVE SPACE TO ls_toolbar-disabled.
MOVE icon_toggle_display_change TO ls_toolbar-icon.
MOVE 'Edit data' TO ls_toolbar-quickinfo.
MOVE 'EDIT' TO ls_toolbar-text.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 0 TO ls_toolbar-butn_type.
MOVE 'VERW' TO ls_toolbar-function.
MOVE SPACE TO ls_toolbar-disabled.
MOVE icon_businav_process to ls_toolbar-icon.
MOVE 'Verw.' TO ls_toolbar-quickinfo.
MOVE 'VERW' TO ls_toolbar-text.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 0 TO ls_toolbar-butn_type.
MOVE 'EXCEL' TO ls_toolbar-function.
MOVE SPACE TO ls_toolbar-disabled.
MOVE icon_xxl TO ls_toolbar-icon.
MOVE 'Excel' TO ls_toolbar-quickinfo.
MOVE 'EXCEL' TO ls_toolbar-text.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD.
METHOD verwerk.
PERFORM verwerk IN PROGRAM (program).
LEAVE PROGRAM.
ENDMETHOD.
METHOD dubbleklik.
PERFORM dubbleklik IN PROGRAM (program)
USING
e_row
e_column
es_row_no.
ENDMETHOD.
ENDCLASS.
Cheers
Jimbo
‎2007 Jul 25 9:16 PM
Rich seems like it might work but i have a problem when i press the execute button i get a short dump in the below code saying "Error when inserting or changing in a sorted table
"
SORT it_orderadmh BY guid object_id.
LOOP AT it_orderadmh INTO l_orderadmh.
l_bapi = l_orderadmh-guid.
-
> APPEND l_bapi TO lt_bapi.
CLEAR : l_orderadmh, l_bapi.
ENDLOOP.
The above code is used in the subroutine which gets the data.
If i remove the sort before loop it gives the short dump when trying get the grid display initially. and if i keep it it gives dump at the same point when i press the REFRESH button. can tell me whats wrong with this?
‎2007 Jul 25 9:24 PM
‎2007 Jul 25 9:28 PM
‎2007 Jul 25 9:29 PM
‎2007 Jul 25 9:31 PM
‎2007 Jul 25 10:09 PM
hey Rich everything works now, i mean no dumps but the grid does not get updated with the new value. am i missing anything here
‎2007 Jul 26 8:36 AM
Hi there
Here's an example based on my code above.
1) It displays a table read from VAPMA of some sales orders.
2) Double click on any row and you will get VA02 with the sales order in the table row where you double clicked.
3) At the end of VA02 the Grid is shown again with an entry in the last column 'C' against the sales order that was double clicked.
Note program and Grid titles also changed when return back from VA02. This is just an example for the previous poster's problem of title not being displayed correctly when returning from a CRM transaction.
The CLASS I'm using is unchanged and only a few lines of code had to be changed in the application program (proves the flexibilty of THIS WAY of doing it). - It can do other things too like directly downloading the GRID to a propely formatted EXCEL spreadsheet etc. The functions are all on the toolbar.
It took me all of 2 mins to code this -- once you've got the base it's REALLY SIMPLE.
Program ZZORDERDISP. "Display and change orders.
DEFINE col_name.
read table it_fldcat into wa_it_fldcat index &1.
wa_it_fldcat-coltext = &2.
modify it_fldcat from wa_it_fldcat index &1.
end-of-definition.
Jimbo 2007.
FIELD-SYMBOLS :
<fs1> TYPE ANY,
<fs2> TYPE STANDARD TABLE,
<fs3> TYPE ANY,
<field_catalog> TYPE STANDARD TABLE,
<dyn_table> TYPE STANDARD TABLE,
<orig_table> TYPE STANDARD TABLE,
<dyn_field>,
<dyn_wa>.
INCLUDE ZZJIMBOXX_INCL. "<====== The class used in above
Posts by me in this thread.
INCLUDE <icon>.
TABLES : VAPMA.
TYPES: BEGIN OF s_elements,
vbeln TYPE vapma-vbeln,
posnr TYPE vapma-posnr,
matnr TYPE vapma-matnr,
kunnr TYPE vapma-kunnr,
werks TYPE vapma-werks,
vkorg TYPE vapma-vkorg,
vkbur TYPE vapma-vkbur,
status TYPE c,
END OF s_elements.
DATA: z_object TYPE REF TO zcl_dog, "Instantiate our class
grid_container1 TYPE REF TO cl_gui_custom_container,
t_elements TYPE TABLE OF s_elements, "refers to our ITAB
wa_elements TYPE s_elements,
wa_dyn_table_line TYPE REF TO DATA,
it_fldcat TYPE lvc_t_fcat,
i_gridtitle TYPE lvc_title,
wa_it_fldcat TYPE lvc_s_fcat,
new_table TYPE REF TO DATA,
dy_table TYPE REF TO data,
dy_line TYPE REF TO data,
row_id TYPE sy-index.
START-OF-SELECTION.
CALL SCREEN 100.
END-OF-SELECTION.
MODULE status_0100 OUTPUT.
break-point 2.
ASSIGN wa_elements TO <fs1>.
CREATE OBJECT z_object EXPORTING z_object = z_object.
i_parent = grid_container1.
CALL METHOD z_object->build_dynamic_structures
CHANGING it_fldcat = it_fldcat.
Here before displaying you can change the field catalog to
adjust your own names
Method call just uses the names in the table structure.
col_name 1 'Order Nr'.
col_name 2 'Item'.
col_name 3 'Material'.
col_name 4 'Customer'.
col_name 5 'Plant'.
col_name 6 'Sales Org'.
col_name 7 'Sales Office'.
col_name 8 'Status'.
PERFORM populate_dynamic_itab.
CALL METHOD z_object->display_grid
CHANGING it_fldcat = it_fldcat.
SET PF-STATUS '0001'.
SET TITLEBAR '000'.
ENDMODULE.
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'RETURN'.
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
ENDMODULE.
FORM populate_dynamic_itab.
SELECT vbeln posnr matnr kunnr werks vkorg vkbur
UP TO 200 rows
FROM vapma
INTO CORRESPONDING FIELDS OF TABLE <dyn_table>.
Populate Dynamic table and save a copy
create 2nd Dyn table to hold original data
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fldcat
IMPORTING
ep_table = dy_table.
ASSIGN dy_table->* TO <orig_table>.
CREATE DATA dy_line LIKE LINE OF <orig_table>.
ASSIGN dy_line->* TO <dyn_wa>.
<orig_table> = <dyn_table>.
ENDFORM.
FORM VERWERK.
break-point 1.
Orig table is in dynamic table <orig_table>
ALV GRID changed table is in <dyn_table>.
Loop at <orig_table> into <dyn_wa>.
Do what you want
end
endloop.
ENDFORM.
FORM refresh.
data: ord_nr TYPE vapma-vbeln.
READ TABLE <dyn_table> index row_id into wa_elements.
ord_nr = wa_elements-vbeln.
set parameter id 'AUN' field ord_nr.
CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
wa_elements-status = 'C'.
modify <dyn_table> from wa_elements index row_id.
break-point 1.
CALL METHOD z_object->refresh_grid.
ENDFORM.
form dubbleklik using
e_row type LVC_S_ROW
e_column type LVC_S_col
es_row_no type lvc_s_roid.
break-point 1.
Get Row id into a variable for this program.
row_id = e_row.
SET TITLEBAR '001'.
i_gridtitle = 'Grid Title Changed'.
CALL METHOD z_object->change_title
EXPORTING i_gridtitle = i_gridtitle.
PERFORM refresh.
endform.
Cheers
Jimbo
‎2007 Aug 01 6:54 PM