Display in editable alv grid.
Hi,
This is my source code of uploading excel into sap and displaying the list.Please give the code for displaying the excel data in editable alv.
<<The code came from [here|https://wiki.sdn.sap.com/wiki/display/Snippets/ABAP-UploaddatafromExceltoSapusing+OO]>>
Thanks in advance.
am just a beginner in learning abap objects.pls help.
Edited by: Matt on Aug 6, 2009 4:26 PM
It wasn't your source code, was it?
Please take the time to read the rules of engagement. As it stands, your question is far too general. There are examples of editable alvs in many location on the net. You must search for them. Please note these are not training forums, they are expert forums. When you have a specific question, we'll be glad to assist.
Post locked
matt
Similar Messages
-
Like SM30 ,table should be display in editable ALV Grid(for Dynamic DB )
Hi Friends,
plese help me how to display ALV grid in editable mode for differnt types of data base tables.
same as like SM30 transaction.
Moderator message: please search for available information/documentation/previous discussions before asking.
Edited by: Thomas Zloch on Nov 11, 2010 6:40 PMHi,
In SLIS_T_FIELDCAT_ALV you specify the field as edit = X.
Give it as mentioned, where you assign fieldname and positions etc.
Thanks&Regards -
Help needed for editable alv grid program
hi,
Can you please tell me how to set a update button in application toolbar of alv griv without suppressing it and how to write the code for that update button so that if I change my editable column data and press the update button my updated data should be stored in my database table.
the code what i wrote is:
TABLES: vbak,vbap.
TYPE-POOLS: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_final,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
matnr LIKE vbap-matnr,
posnr LIKE vbap-posnr,
END OF t_final.
DATA: i_final TYPE STANDARD TABLE OF t_final INITIAL SIZE 0,
wa_final TYPE t_final.
*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE slis_layout_alv,
gd_repid LIKE sy-repid.
*Start-of-selection.
START-OF-SELECTION.
PERFORM data_retrieval.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.
*& Form BUILD_FIELDCATALOG
Build Fieldcatalog for ALV Report
FORM build_fieldcatalog.
fieldcatalog-fieldname = 'VBELN'.
fieldcatalog-seltext_m = 'sales order'.
fieldcatalog-col_pos = 0.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'ERDAT'.
fieldcatalog-seltext_m = 'date'.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'material no.'.
fieldcatalog-col_pos = 2.
fieldcatalog-edit = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'POSNR'.
fieldcatalog-seltext_m = 'line item no.'.
fieldcatalog-col_pos = 3.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
Build layout for ALV grid report
FORM build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
ENDFORM. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
Display report using ALV grid
FORM display_alv_report.
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = gd_tabgroup
IT_EVENTS = GT_XEVENTS
i_save = 'X'
is_variant = z_template
TABLES
t_outtab = i_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_ALV_REPORT
*& Form DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
FORM data_retrieval.
SELECT avbeln aerdat bmatnr bposnr FROM vbak AS a
INNER JOIN vbap AS b ON avbeln = bvbeln
INTO TABLE i_final WHERE avbeln = bvbeln.
ENDFORM. " DATA_RETRIEVAL
thanks in advance.hi sudhir,
thanks for ur reply.
after seeing the code u send to me i made changes to my program.but still when i click on update button,nothing is happening.can u please suggest me an idea.
TABLES: vbak,vbap.
TYPE-POOLS: slis. "ALV Declarations
TYPES: BEGIN OF t_final,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
matnr LIKE vbap-matnr,
posnr LIKE vbap-posnr,
END OF t_final.
DATA: i_final TYPE STANDARD TABLE OF t_final WITH HEADER LINE,
wa_final TYPE t_final.
*DATA:i_final LIKE vbap OCCURS 0.
*DATA:wa_final LIKE vbap.
*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE slis_layout_alv,
gd_repid LIKE sy-repid.
*Start-of-selection.
START-OF-SELECTION.
PERFORM data_retrieval.
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.
*& Form BUILD_FIELDCATALOG
Build Fieldcatalog for ALV Report
FORM build_fieldcatalog.
fieldcatalog-fieldname = 'VBELN'.
fieldcatalog-seltext_m = 'sales order'.
fieldcatalog-col_pos = 0.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'ERDAT'.
fieldcatalog-seltext_m = 'date'.
fieldcatalog-col_pos = 1.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'material no.'.
fieldcatalog-col_pos = 2.
fieldcatalog-edit = 'X'.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'POSNR'.
fieldcatalog-seltext_m = 'line item no.'.
fieldcatalog-col_pos = 3.
APPEND fieldcatalog TO fieldcatalog.
CLEAR fieldcatalog.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
Build layout for ALV grid report
FORM build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
ENDFORM. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
Display report using ALV grid
FORM display_alv_report.
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'GUI_STAT'
i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = gd_tabgroup
it_events = it_events
i_save = 'X'
is_variant = z_template
TABLES
t_outtab = i_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_ALV_REPORT
*& Form DATA_RETRIEVAL
Retrieve data form EKPO table and populate itab it_ekko
FORM data_retrieval.
SELECT avbeln aerdat bmatnr bposnr FROM vbak AS a
INNER JOIN vbap AS b ON avbeln = bvbeln
INTO TABLE i_final WHERE avbeln = bvbeln.
ENDFORM. " DATA_RETRIEVAL
FORM GUI_STAT *
--> RT_EXTAB *
FORM gui_stat USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'UPDATE' EXCLUDING rt_extab.
ENDFORM.
FORM USER_COMMAND *
--> U_COMM *
--> RS_SELFIELD *
FORM user_command USING u_comm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA:selfield TYPE slis_selfield.
CASE u_comm.
WHEN 'UPDATE'.
LOOP AT i_final ."into wa_final.
i_final-matnr = vbap-matnr.
update (vbap) from table i_final.
IF sy-subrc = 0.
MESSAGE s000(0) WITH 'records updated successfully'.
ENDIF.
ENDLOOP.
ENDCASE.
ENDFORM. -
How can we find out data in an editable ALV grid has been changed or not?
Hi Experts,
How can we find out whether a data in an editable ALV grid has been changed or not.
I am using the
FM -> REUSE_ALV_GRID_DISPLAY_LVC
for ALV display.
I have to chekc whther data has been changed or not befor saving. if changed then only i want to
SAVE
. I cannot use the internal table comparison method for this purpose also i am not using OOP ALV.
So kindly sugest me an alternative.
Thanks and Regards,
ShahanaHi,
Thanks for your answer. I already saw this post.
See this method.
CALL METHOD reuse_alv_grid->check_changed_data
IMPORTING
e_valid = lv_check.
This will update the internal table with the edited values. Then we can go for internal table comparison.
But my scenario will not allow me for itab comparisons.I just want to know the ALV data has been changed or not.
Regards,
Shahana -
Hi guys,
I use the following method (register_edit_event) in the PBO soon after first display of an editable ALV grid to register enter as an event to do validations on fields like qty. If user enters some character like 'abc' for qty and hits enter on keyboard, ALV grid pop's up a standard message ( I haven't coded for this.Since I use DDIC structure in field catalog, the Std. ALV program takes care of it. ). THis takes care of the validation before I click on save.
call method alv_grid->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
This works fine. But I want this validation to run when I also click the SAVE button of the screen. Is it possible to run this standard validation in my PAI event eg. SAVE ? I thought I will be, by calling the method check_changed_data in my PAI event. But this is doing nothing. Does this method conflict with register_edit_event or something ? So , basically what I am looking for is to trigger the event or call the method which does the same work as the "check" button on ALV grid.
Any advice or tips or sample code is greatly appreciated.
Thanks,
ShareenHi Shareen,
Handle the data_changed event in the grid.
Whenever you make changes in the data in ALV Grid this event would be triggered. Here you can perform additional validations that you may need to perform.
METHODS handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed.
Implementation:
METHOD handle_data_changed.
PERFORM validations USING er_data_changed.
ENDMETHOD.
FORM validations USING er_data_changed TYPE REF TO cl_alv_changed_data_protocol.
DATA: ls_good TYPE lvc_s_modi.
DATA wa LIKE LINE OF lt_good_cells.
CALL METHOD g_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
LOOP AT er_data_changed->mt_good_cells INTO ls_good.
CASE ls_good-fieldname.
WHEN 'FIELDNAME'. "Your fieldname
CALL METHOD er_data_changed->get_cell_value "Get the changed value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = ls_good-fieldname
IMPORTING
e_value = temp. "Your temp variable
"Make your validations here.
ENDCASE.
Ps: Reward points if helpful.
Regards,
Wenceslaus. -
Urgent : Problem with Editable ALV Grid for Quantity and Currency Fields
Hi All,
I am using Editable ALV Grid display and have quantity and value as editable fields in the display.
When user changes these values these values are not changing properly .
For the quantity field the domain is MENG13 with 3 deciamal places and here if we enter 500 it takes it as 0.500 .
The same problem is for the currency field. Here the Domain is WERT7 with 3 decimal places.
Here also it takes last 2 digits after decimal places by default.
Please advice how to get proper values in this case from ALV editable fields.
Thanks and Regards
Harshad
Edited by: Harshad Rahirkar on Dec 25, 2007 7:39 AMfor all the currency field , it will display like that only.
u have to manipulate uin program before displaying.
if they are giving 500, in program multiply with 100 and move it to table.
when u are getting from table, divinde and display.
this is what I am doing.
Reward if helpfull. -
Runtime Error - TABLE_FREE_IN_LOOP in editable ALV GRID
While modifying editable ALV Grid, (CL_GUI_ALV_GRID) I am getting an unexpected dump as follows -
"Runtime Error TABLE_FREE_IN_LOOP".
In a Editable ALV grid whenever new row is added using standard append row button, And while saving, i check for any initial values, in that case iam displaying a warning message. So after that when i try to modify the row, and press enter key, Iam getting this dump "TABLE_FREE_IN_LOOP".
Can you please help on this regard.
Thanks in advance..
Best regards,
Prasad.Hello Krishna
take a additional internal table which is exactly of same type of the internal table which you want to modify . try modifying the second internal table. and then proceed for db update(if required).
Regards,
Suvendu -
hi,
I have successfully displayed data in the ALV GRID(in Read-ONLY mode) by using the function of class "CL_GUI_ALV_GRID" . But I have not been able to display the data in the edit mode .I want that the user should be able to edit the data displayed in the ALV GRID (and final data should be stored in the transparent table), but I have not been able to add that functionality . Can anyone please tell me how to do the same (any function that I need to call ??) .
Thanx
sagarHi Sagar,
there was a similar question in this forum and Vijay Babu Dudla wrote a nice sample report:
editing alv output
Best Regards,
Stefan -
Mandatory Fields on Editable ALV Grid
Hi. I am using oops method to make an editable ALV grid.
How do I sent some columns for mandatory data entry?
Here are my declarations
gs_layout TYPE lvc_s_layo, "Layout declaration
go_grid TYPE REF TO cl_gui_alv_grid, "Grid
go_custom_container TYPE REF TO cl_gui_custom_container,"Container
go_fieldcat type lvc_t_fcat, "Field Catalog
Thanks,
ShareenHi Shareen Hegde ,
Try this program.
report zshail_alv_new .
tables: sflight.
type-pools: icon.
data: pt_sort type lvc_t_sort.
data: my_column type table of lvc_s_ceno with header line.
data: t_hype type LVC_T_HYPE.
class shail_event definition.
public section.
methods:
handle_toolbar for event toolbar of cl_gui_alv_grid
importing e_object e_interactive,
handle_user_command for event user_command of cl_gui_alv_grid importing
e_ucomm,
handle_contextmenu_request for event context_menu_request of
cl_gui_alv_grid importing e_object.
endclass.
class shail_event implementation.
method handle_toolbar.
perform handler_toolbar using e_object e_interactive.
endmethod.
method handle_user_command.
perform handler_user_command using e_ucomm.
endmethod.
method handle_contextmenu_request.
perform handler_contextmenu_request using e_object.
endmethod.
endclass.
data: go_container type ref to cl_gui_custom_container,
go_grid type ref to cl_gui_alv_grid,
field_catalog type lvc_t_fcat,
layout type lvc_s_layo.
data: begin of itab occurs 0.
include structure sflight.
data: end of itab.
data: obj type ref to shail_event.
data: button_exclude type ui_functions.
start-of-selection.
call screen 200.
*& Module STATUS_0100 OUTPUT
text
module status_0100 output.
SET PF-STATUS 'xxxxxxxx'.
SET TITLEBAR 'xxx'.
if go_container is initial.
create object go_container
exporting
PARENT =
container_name = 'ALV_CONTAINER'
STYLE =
LIFETIME = lifetime_default
REPID =
DYNNR =
NO_AUTODEF_PROGID_DYNNR =
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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
create object go_grid
exporting
I_SHELLSTYLE = 0
I_LIFETIME =
i_parent = go_container
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.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
create object obj.
set handler obj->handle_toolbar for go_grid.
set handler obj->handle_user_command for go_grid.
set handler obj->handle_contextmenu_request for go_grid.
select * from sflight into corresponding fields of table itab.
perform catalog_fill changing field_catalog.
perform layout_fill changing layout.
perform prepare_sort_table changing pt_sort.
call method go_grid->set_table_for_first_display
exporting
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME = 'SFLIGHT'
IS_VARIANT =
I_SAVE =
I_DEFAULT = 'X'
is_layout = layout
IS_PRINT =
IT_SPECIAL_GROUPS =
it_toolbar_excluding = button_exclude
IT_HYPERLINK = t_hype
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
changing
it_outtab = itab[]
it_fieldcatalog = field_catalog
it_sort = pt_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.
else.
call method go_grid->refresh_table_display
EXPORTING
IS_STABLE =
I_SOFT_REFRESH =
EXCEPTIONS
FINISHED = 1
others = 2
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.
endmodule. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
text
module user_command_0100 input.
case sy-ucomm.
when 'BACK'.
LEAVE TO SCREEN 0.
endcase.
endmodule. " USER_COMMAND_0100 INPUT
*& Form CATALOG_FILL
text
<--P_FIELD_CATALOG text
form catalog_fill changing p_field_catalog.
data ls_fcat type lvc_s_fcat .
ls_fcat-fieldname = 'CARRID' .
ls_fcat-inttype = 'C' .
ls_fcat-outputlen = '20' .
ls_fcat-coltext = 'Carrier ID' .
ls_fcat-web_field = 'carrid_handle'.
ls_fcat-edit = 'X'.
*ls_fcat-emphasize = 'C310'. "needed for column coloring
append ls_fcat to field_catalog .
clear ls_fcat .
ls_fcat-fieldname = 'FLDATE' .
ls_fcat-ref_table = 'SFLIGHT' .
ls_fcat-ref_table = 'FLDATE' .
ls_fcat-outputlen = '20' .
ls_fcat-coltext = 'Flight Date' .
ls_fcat-web_field = 'fldate_handle'.
append ls_fcat to field_catalog .
clear ls_fcat .
ls_fcat-fieldname = 'PRICE' .
ls_fcat-ref_table = 'SFLIGHT' .
ls_fcat-ref_table = 'PRICE' .
ls_fcat-outputlen = '20' .
ls_fcat-coltext = 'Airfare' .
append ls_fcat to field_catalog .
clear ls_fcat .
ls_fcat-fieldname = 'SEATSMAX' .
ls_fcat-ref_table = 'SFLIGHT' .
ls_fcat-ref_table = 'SEATSMAX' .
ls_fcat-outputlen = '20' .
ls_fcat-coltext = 'Maximum seats' .
append ls_fcat to field_catalog .
endform. " CATALOG_FILL
*& Form LAYOUT_FILL
text
<--P_LAYOUT text
form layout_fill changing p_layout type lvc_s_layo.
p_layout-zebra = 'X' .
p_layout-grid_title = 'Flights' .
p_layout-smalltitle = 'X' .
p_layout-no_merging = 'X'.
*p_layout-sel_mode = 'A'.
*p_layout-info_fname = 'rowcolor'.
endform. " LAYOUT_FILL
*& Form exclude_std_buttons
text
<--P_BUTTON_EXCLUDE text
form exclude_std_buttons changing p_button_exclude type ui_functions.
the various buttons are details,sort asc,sort desc,find,set filter,
total, subtotal,
print,view,export,changelayout,display graphic, eu documentation
MC_FC_DETAIL,MC_FC_FIND,MC_FC_FILTER,MC_FC_GRAPHIC,MC_FC_SORT_ASC,
MC_FC_SORT_DSC,MC_FC_SUBTOT,MC_FC_SUM,MC_FC_PC_FILE,MC_FC_VIEWS
data: ls_exclude type ui_func.
ls_exclude = cl_gui_alv_grid=>mc_fc_detail.
append ls_exclude to p_button_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_find.
append ls_exclude to p_button_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_filter.
append ls_exclude to p_button_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_graph.
append ls_exclude to p_button_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_sort_asc.
append ls_exclude to p_button_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_sort_dsc.
append ls_exclude to p_button_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_subtot.
append ls_exclude to p_button_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_sum.
append ls_exclude to p_button_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_print.
append ls_exclude to p_button_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_views.
append ls_exclude to p_button_exclude.
endform. " exclude_std_buttons
*& Form handle_toolbar
text
-->P_E_OBJECT text
-->P_E_INTERACTIVE text
-->P_ENDMETHOD text
form handler_toolbar using p_e_object type ref to
cl_alv_event_toolbar_set
p_e_interactive .
data: ls_toolbar type stb_button.
clear ls_toolbar.
move 'PER' to ls_toolbar-function. "#EC NOTEXT
move icon_display_text to ls_toolbar-icon.
move 'Test Info'(201) to ls_toolbar-quickinfo.
move 'Test Info'(201) to ls_toolbar-text.
move ' ' to ls_toolbar-disabled. "#EC NOTEXT
append ls_toolbar to p_e_object->mt_toolbar.
endform. " handle_toolbar
*& Form handle_user_command
text
-->P_E_UCOMM text
form handler_user_command using p_e_ucomm.
case p_e_ucomm.
when 'PER'.
perform selected_columns.
when 'CREA'.
message i001(zmess).
endcase.
endform. " handle_user_command
*& Form prepare_sort_table
text
<--P_PT_SORT text
form prepare_sort_table changing p_pt_sort type lvc_t_sort.
data: ls_sort type lvc_s_sort.
ls_sort-spos = '1'.
ls_sort-fieldname = 'FLDATE'.
ls_sort-up = space.
ls_sort-down = 'X'.
append ls_sort to p_pt_sort.
endform. " prepare_sort_table
*& Form handler_contextmenu_request
text
-->P_E_OBJECT text
form handler_contextmenu_request using p_e_object type ref to
cl_ctmenu.
*CALL METHOD p_e_object->hide_functions
EXPORTING
fcodes = LT_FCODES
CALL METHOD p_e_object->clear
*break-point.
CALL METHOD p_e_object->add_function
EXPORTING
fcode = 'CREA'
text = 'Add Function'
ICON =
FTYPE =
DISABLED =
HIDDEN =
CHECKED =
ACCELERATOR =
endform. " handler_contextmenu_request
*& Form selected_columns
text
--> p1 text
<-- p2 text
form selected_columns.
CALL METHOD go_grid->get_selected_cells_id
IMPORTING
ET_CELLS = my_column[]
loop at my_column.
this will specify the id of the selected cell
message i001(zmess) with my_column-row_id.
message i002(zmess) with my_column-col_id.
endloop.
endform. " selected_columns
*& Form display_values
text
-->P_ROW_ID text
*& Form prepare_hyp_tab
text
<--P_T_HYPE text
form prepare_hyp_tab changing p_t_hype type lvc_t_hype.
endform. " prepare_hyp_tab
*& Module STATUS_0200 OUTPUT
text
module STATUS_0200 output.
SET PF-STATUS 'xxxxxxxx'.
SET TITLEBAR 'xxx'.
endmodule. " STATUS_0200 OUTPUT
*& Module USER_COMMAND_0200 INPUT
text
module USER_COMMAND_0200 input.
CASE SY-UCOMM.
WHEN 'NEXT'.
CALL SCREEN 100.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
endmodule. " USER_COMMAND_0200 INPUT
Good Luck and REWARD ME for the same
Thanks
Ashok.N -
Editable ALV Grid: Append new rows
Hi All,
I have developed a report which will displays output in editable ALV grid list. Users can modify the values in output and save. These values will be stored in one custom table.
My requirement is whenever user clicks on '+' mark (Create entries or Append or Copy: Standard toolbar) report should allow to enter new entries and save. How do I capture the selected function code? why becuase i need to display one value from the custom table in that added new row...
Regards,
Ramesh.Hi Ramesh,
please check changed data event.....
please go through the reference link......
https://wiki.sdn.sap.com/wiki/display/Snippets/UpdatingtheInternalTable-AfterEditinALVusingFunctionModules
Regards,
Venkat -
How to Transfer Data from editable ALV grid control to internal table?
Hi,
Can anyone give me a simple example by which I can transfer data from editable alv grid control back to the internal table. The ALV has been created by OO approach.
I would appreciate if the solution is provided without handling any events.
Regards,
AuroHello Auro
You simply need to call method <b>go_grid->check_changed_data</b> at PAI of the dynpro displaying the ALV grid. If data have been changed on the editable ALV grid then this method will raise event DATA_CHANGED. If you do not want or need to handle this event (e.g. for validating the edited values) then you do not define any event handler method.
Regards
Uwe -
Display amount in ALV Grid with different Decimal Places based on Currency
HI Experts,
Working with ALV Report i have one Amount field NETWR which is having Length 15 and Decimal Places 2.
we have two different types of currency's AED and KWD and AED having 2 decimal Places and KWD having 3 decimal places.
im using FM: REUSE_ALV_GRID_DISPLAY for Display. value storing in Table was like this
AED---22.56
KWD---225.65
i need to display values like AED : 22.56HI Experts,
Working with ALV Report i have one Amount field NETWR which is having Length 15 and Decimal Places 2. we have two different types of currency's AED and KWD and AED having 2 decimal Places and KWD having 3 decimal places.
im using FM: REUSE_ALV_GRID_DISPLAY for Display. value storing in Table was like this
AED---22.56
KWD---225.65 (converting this value to 22.565 using BAPI_CURRENCY_GETDECIMALS according to currency in my Report)
i need to display values like AED : 22.56
KWD---22.565 but here field is NETWR with 2 decimal.
Need to Display amount in ALV Grid with different Decimal Places based on Currency
Regards,
Dileep Kumar Reddy -
Determining Duplicate Entries in Editable ALV Grid
Hopefully this question is not as obvious as it may seem at first. Thanks for any input or ideas...read carefully, it is not just a simple duplicate check with which I'm having a problem.
I have an editable ALV grid and I need to ensure that the user doesn't try to enter the same material number twice. I used the program BCALV_EDIT_03 and 04 as a model. I can tell if in my session a user is trying to put in the material number twice. Not a problem. I can also tell if the user is trying to add a material to the ones already on the grid that is a duplicate. That is not a problem either. Here is the catch...and I'd like to point out that BCALV_EDIT_04 has the same problem.
The user enters line 10 with material 0245 and line 20 with 0345. There is no duplicate. Then they say, 'Oooops, I got them backward' and then move 0345 to line 10 and 0245 to line 20. When you hit enter, the change handler says that line 10 and 20 were changed and the field MATNR was changed. It then compares the new fields to what is already in the grid...low and behold the grid already has these two entries and the protocol adds the error for both lines.
I will add the code here, but it is pretty much exactly as in BCALV_EDIT_04. If you want to see the error in that program execute it, put in two new lines with the same airline and two different dates and hit save. Everything is fine. Then swap the dates and hit Save again...it will say these are duplicates, which they are not...this program is not saving to the database. The only difference between mine and bcalv_edit_04 is that mine uses an 'ENTER' event and not a 'SAVE'.
I'm looking for good ideas on how to compare the two...the mt_good_cells (session active) and the grid itself to know when a user has 'moved' data. The current workaround is for the user to copy the line and then reapply it...but that seems a bit glitchy.
Thanks in advance, I appreciate any sage advice. : )
METHOD check_double_entries.
DATA: lt_good_cells TYPE lvc_t_modi,
ls_good TYPE lvc_s_modi,
l_matnr TYPE matnr,
l_del_row TYPE lvc_s_moce,
ls_rosi LIKE LINE OF i_rosi,
l_reentered TYPE c.
LOOP AT pr_data_changed->mt_good_cells INTO ls_good.
CASE ls_good-fieldname.
WHEN 'MATNR'.
CALL METHOD pr_data_changed->get_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = ls_good-fieldname
IMPORTING
e_value = l_matnr.
READ TABLE lt_good_cells WITH KEY
value = l_matnr
TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
CALL METHOD pr_data_changed->add_protocol_entry
EXPORTING
i_msgid = '0K'
i_msgno = '000'
i_msgty = 'E'
i_msgv1 = text-m01
i_fieldname = ls_good-fieldname
i_row_id = ls_good-row_id.
error_in_data = 'X'.
ELSE.
ls_good-value = l_matnr.
APPEND ls_good TO lt_good_cells.
ENDIF.
ENDCASE.
ENDLOOP.
LOOP AT lt_good_cells INTO ls_good.
l_matnr = ls_good-value.
READ TABLE i_rosi WITH KEY matnr = l_matnr
TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
l_reentered = space.
LOOP AT pr_data_changed->mt_deleted_rows INTO l_del_row.
READ TABLE i_rosi INTO ls_rosi INDEX l_del_row-row_id.
IF sy-subrc NE 0.
MESSAGE i000(0k) WITH text-e01.
ELSEIF ls_rosi-matnr EQ ls_good-value.
l_reentered = 'X'.
ENDIF.
ENDLOOP.
IF l_reentered NE 'X'.
CALL METHOD pr_data_changed->add_protocol_entry
EXPORTING
i_msgid = '0K'
i_msgno = '000'
i_msgty = 'E'
i_msgv1 = text-m01
i_fieldname = ls_good-fieldname
i_row_id = ls_good-row_id.
error_in_data = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
ENDMETHOD. "check_double_entriesHi Greg,
please check your posting in the prview tab. If the code is not formatted, you posted too much. Reduce and try again, then somebody may be willing to read.
Regards,
Clemens -
Enter Key Event in Editable ALV Grid
Hi all,
I am trying to create and editable ALV grid using the REUSE ALV FM.
On the grid after changing a value, if I press enter key the pai is not triggered. I have tried the various example programs (BCALV*) but could not find anything relevant.
Basically I need similar functionality to normal module pool programming as in validations on screen done when enter key is pressed after screen entry.
Is it possible to capture the Enter keypress on the ALV grid?Hello Preet
I can only tell you how I would solve this using the ALV grid control (CL_GUI_ALV_GRID) because I have abandoned using ALV function modules.
The problem with running through PAI is whether the focus (i.e. the cursor) is still on the control or already on the (surrounding) main program. If the control has the focus, you do not run through PAI.
I would add a "Refresh" button to the toolbar of the ALV list. Normally, this button is already there or you only have to make it visible.
When the user pushes this button you catch the corresponding user-command and call the CHECK_DATA_CHANGED method to see if values have been changed on the editable grid. If so, the previous method will fire event DATA_CHANGED.
Now, in the event handler method (e.g. HANDLE_DATA_CHANGED) you receive as input a data change object (CL_ALV_CHANGED_DATA_PROTOCOL). This object contains all changed values. These values you will need to make your checks.
I assume that the logic will be similar using ALV function modules.
Regards
Uwe -
Not able to display logo on alv grid output
hi
can anybody guide me.
i have written code for displaying logo on alv grid report.
i uploaded bmp image using OAER
but even then i am not able to display logo on the report please help me
i am using 4.7 version..
code...
REPORT ZALVLOGO .
type-pools: slis.
data: i_sflight type table of sflight.
*data: begin of i_sflight occurs 10.
*include structure sflight.
*data: end of i_sflight.
data: it_events type slis_t_event,
wa_events type slis_alv_event.
select * from sflight into table i_sflight.
perform form_fill_table.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_TOP_OF_PAGE = 'top-of-page'
I_STRUCTURE_NAME = 'sflight'
TABLES
T_OUTTAB = i_sflight
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*& Form top_of_page
text
--> p1 text
<-- p2 text
FORM top-of-page .
data: t_header type slis_t_listheader,
wa_header type slis_listheader.
wa_header-typ = 'h'.
wa_header-info = 'FLIGHT DETAILS'.
APPEND wa_header to t_header.
CLEAR WA_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = t_header
I_LOGO = 'ENJOY'.
I_END_OF_LIST_GRID =.
ENDFORM. " top_of_page
*& Form form_fill_table
text
--> p1 text
<-- p2 text
FORM form_fill_table .
clear wa_events.
wa_events-name = 'top-op-page1'.
wa_events-form = 'top-of-page'.
append wa_events to it_events.
ENDFORM. " form_fill_tablehi ,
First upload images in SAP using transaction se78
http://www.howforge.com/step-by-step-upload-bitmap-images-to-sap
Then use that Image name to call using function module
in top of -page
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
i_logo = 'KAL1_LOGO'
it_list_commentary = lt_top_of_page_no_sel.
Regards
Deepak.
Maybe you are looking for
-
Problems creating a db in 11.2.0.1.0
I have installed the Oracle 11.2.0.1 on Oracle Linux 5.4. Then I run netca to create listener. I start the listener. Then I run dbca to create the database. Just use the general template. Then I set sid and try startup. However it seems that it cant
-
Iii m nt able to conect my i phone 5 to my laptop
hello guys plsss let me know how to connect an apple i phone 5 to my laptop ii m getting trouble in connection it doesnot show any sign of connection nd it is also not charging when i plug the code into laptop
-
JTextField.setDocument(null) in 1.3 and 1.4
Hi We are upgrading to Java 1.4 from 1.3. The method JTextField.setDocument(doc) works fine in 1.3 when 'doc' is null. But in 1.4, it throws null pointer exception. I am not using JTextField directly, I am using a derived class of JTextField. 'doc' i
-
It is possible to set up a style such that the last line of a paragraph has a wide right margin that the read of the paragraph? I would like to have a TOC style that has FIRST LINE Justified Right Margin
-
BBM 5.0 Group Admin abilities lost after OS update
Hi everyone, Just like what I've stated in the subject, I'm longer the group Admin in my BBM Group after updating my OS. I've gone through the "recovery" process to recover my BBM group, but after it was recovered, I realized that I'm no longer the G