Editable ALVs - How to update DB?
Hi Experts,
Out of my curiosity, wuld like to know,
How the Editable ALVs do updation of DB? I mean, prog. flow?
thanq.
ThanQ Sarda,
OK, I got it.
Actually, I dont hv much idea abt Editable ALVs! My thinking is like,
Supose,
the user changed from 4.63 to 5.63 on ALV grid,
then, the user either pressed the SAVE(Floppy) or used the programmer defined push button on the front end screen, say the push button name is, UPDATE.
So,
1 - Now, How I hv to pull( I mean, How I hv to read the ALV grid?) the (front end value of) 5.63 value to back end, which is to b used for passing to either BAPI/FM or BDC etc. in the prog. for DB updation?
2 - If the user used the FLOPPY button i.e. SAVE, How to track it ( I know, if the user defined push button is there, we can track by using SY-UCOMM)?
thanq.
Similar Messages
-
Editable ALV - how to throw an error message for a specific line & field
Hi all,
I've implemented an editable ALV and also the ON_DATA_CHECK event to check the values, entered in the ALV. So this works fine and I can check the values.
But now, I want to throw an error message corresponding to the field in the ALV, where the error occured.
How can I throw this error message corresponding to a specific line/field in the ALV?
I was using REPORT_ATTRIBUTE_ERROR_MESSAGE and REPORT_ELEMENT_ERROR_MESSAGE but without success.
I'm also using a loop over the "CHANGES" in the ALV and within this loop, I use
elem_alv = node_alv->get_element( index = <change>-element_index )
to get the element for the message.
CALL METHOD lo_message_manager->REPORT_ELEMENT_ERROR_MESSAGE
EXPORTING
MESSAGE_TEXT = 'my message'
ELEMENT = elem_alv
* ATTRIBUTES =
* PARAMS =
* MSG_USER_DATA =
* IS_PERMANENT = ABAP_FALSE
* SCOPE_PERMANENT_MSG = CO_MSG_SCOPE_CTXT_ELEMENT
* MSG_INDEX =
* CANCEL_NAVIGATION =
* IS_VALIDATION_INDEPENDENT = ABAP_FALSE.
2.) is it right, that for an editable ALV, I can't use the WDDOBEFOREACTION to do the checks?
If I try to use this, I can't get the values of my ALV table to check it.
Thanks,
AndreasHi Andreas,
I have tried to replicate your problem and I am getting the desired output. I have a row by name TEMP_NEW in my ALV and I want to throw an error message whenever the user enters a value of 4 for that particular field. Please find my coding as below. The important thing is where we perform the actual comparison between the r_value and 4. r_value is defined in SALV_WD_S_TABLE_MOD_CELL as reference to type DATA. So suppose the user enters a value of say 3 in the TEMP_NEW field of the ALV then r_value would contain 3 but if you observe its type in debugging mode it would be as TYPE REF TO I and not TYPE I. So you cannot directly say something like:
"if ls_modified_cells-r_value = 3" as this would lead to a syntax error. Define a field-symbol say <temp> and then use it to get the actual value into it by saying like:
ASSIGN ls_modified_cells-r_value->* TO <temp>.
Then you can use this <temp> for comparison in your IF statement like:
IF <temp> = 3.
Find the entire coding as below:
METHOD check_data.
DATA: lr_node TYPE REF TO if_wd_context_node,
lr_element TYPE REF TO if_wd_context_element,
ls_modified_cells TYPE salv_wd_s_table_mod_cell.
FIELD-SYMBOLS <temp> TYPE data.
" get message manager
DATA lo_api_controller TYPE REF TO if_wd_controller.
DATA lo_message_manager TYPE REF TO if_wd_message_manager.
lo_api_controller ?= wd_this->wd_get_api( ).
CALL METHOD lo_api_controller->get_message_manager
RECEIVING
message_manager = lo_message_manager.
lr_node = wd_context->get_child_node( name = 'NODE' ).
LOOP AT r_param->t_modified_cells INTO ls_modified_cells.
lr_element = lr_node->get_element( index = ls_modified_cells-index ).
IF ls_modified_cells-attribute = 'TEMP_NEW'.
" Get the value extracted into the field symbol from the reference variable
ASSIGN ls_modified_cells-r_value->* TO <temp>.
" Use the value present in this field-symbol for your comparison
IF <temp> = 4.
" report message
CALL METHOD lo_message_manager->report_attribute_error_message
EXPORTING
message_text = 'Sample message text'
element = lr_element
attribute_name = ls_modified_cells-attribute.
ENDIF.
ENDIF.
ENDLOOP.
ENDMETHOD.
Hope this helps resolve your problem.
Regards,
Uday -
Editable ALV, how to capture changed data
Hi All,
I have created an editable ALV. User can make some changes in the displayed record and press "Submit" button (custom button on application toolbar), the program should validate the data and write the file on application server if validations are successful otherwise controls stay on the same screen.
I am handling this validation and writing file part in PAI of the screen.
Problem: The program is capturing the data when user changes it for the first, but program is failing to capture the subsequent changes (user makes after the validation fails). Program processes always the first time changed data only. Please help me in getting this problem resolved.
Step1 : Program shows output.
Step2: User changes Company Code.
Step3: User clicks on Submit Button.
Step3.1: Program reads the new data and performs validation.
Step3.2: New Company code is not valid, error displayed.
Step4: User changes the company code again, presses submit button.
Goto step 3.1 -> Here program does not read the new data, rather first time changes company code is again read and validated, and program shows the same error again, which is not a desired resultHi Ashish,
you need a method HANDLE_DATA_CHANGED as handler for grid event DATA_CHANGED.
Use
LOOP AT er_data_changed->mt_mod_cells ASSIGNING <mod>.
to check all changed data. In this event, add the error messages to ER_DATA_CHANGED object.
set all required handlers, i.e.
SET HANDLER:
handle_data_changed FOR ro_grid,
handle_data_changed_finished FOR ro_grid,
handle_toolbar_set FOR ro_grid,
handle_user_command FOR ro_grid,
handle_hotspot_click FOR ro_grid,
handle_f4 FOR ro_grid,
handle_f1 FOR ro_grid.
ro_grid->set_toolbar_interactive( ).
Register ENTER and MODIFIED events.
ro_grid->register_edit_event( cl_gui_alv_grid=>mc_evt_enter ).
ro_grid->register_edit_event( cl_gui_alv_grid=>mc_evt_modified ).
Regards,
Clemens -
ADF Master Form / Detail editable table : how to update the table ?
Hello,
I'm using ADF faces with entity objects.
Here is a simple explanation of the model :
Table DOCUMENT --> Table LINEA DOCUMENT can have 0 or several row in the LINE table. Model is quite simple.
I'd like to create JSF pages to create and update DOCUMENT/LINE items.
I began with the Edit one :
In my DataControls I have something like :
AllDocuments
|
+- Id
|
+- Name
|
+-> AllDocumentLines
|
+- IdLine
|
+- ValueI created a form with the "AllDocuments" items having navigation and submit button.
I created an editable table with "AllDocumentLines" items.
The values are correctly filled.
My questions are :
- Which kind of "button" I have to add at the end of each row of the table to :
* validate the update if "Value" changes ? I tried to drag/drop the related Create button but it stays disabled.
* delete the row
- Which button can I put to "Add" a new row ?
I searched the forum but can't find answers of my problem.
Edit: I'm using JDeveloper 11.1.1.3.0
Edited by: Christophe on Jul 2, 2010 5:12 PMFor creating a record drag the createInsert operation and for delete drag the delete operation - just make sure to drag the operation from the right VO in the data control palette.
The you can drag the commit and rollback operations from the AM level - and you can change the "Disabled" properties of the buttons to false. -
Editable ALV - how to raise errors ?
Hi,
I have a screen with some fields.
And below it I have a custom container with an <b>Editable</b> ALV (<b>Classical</b> ALV).
since the ALV is editable, the values entered gets validated. and upon finding a wrong entry, If I throw an error <b>from ALV</b>, the transaction aborts. The error is being raised from <b>data_changed_finished event</b>.
I dont understand the reason why.
Are you not supposed to raise an error through the ALV ?
In the Data_Changed event, I chose the cl_alv_changed_data_protocol object to write logs.
But what if I need to raise an error else where in the alv flow.. say in user command of the alv.
Rgds,
Prashanth.Hi raja,
Exactly like what zhenglin gu said. Error msg is thrown successfully. But if user tries to do anythign following that, like enter some other data or even a simple mouse click on teh alv, it aborts. No warning or message is thrown. it simply aborts.
And there is nothign specific about the error message.
Currently i have removed teh code for throwing the error msg.
But nothing v specific abt it...
Message e008(/NAM/NAE_MESSAGES).
Seems like some problem with the way alv and the screen talk to each other or something like that ? Or is there a way to handle this ?
Rgds,
Prash. -
Update the Billing orders after display/ modifiy in the Editable ALV
Hi Experts,
I have created one Editable ALV to display theBilling order with BP details,
Once user get the ALV output he can modify the content and same will be updated once he hits UPDATE button.
my requirement is after user hits the UPDATE button a background should be created and update of BO should happen also user user should able to see the status by checking the SPOOL.
currently i am using the FM crm_order_maintain to update, kindly guide me how to process this step in background for all the entries which are selected in ALV by user.
i think i can use SUBMIT with JOB_OPEN and JOB_CLOSE, but i need some same code & guidance.
Thanks in Advance.
Regards,
Pradeepproblem solved
-
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 -
How to update changed data in alv grid.
hi experts,
i have a editable alv report how to update the changed data on the grid to database table when i click save.
can anybody tell me how to do this if possible with example.
thanks in advance.
regards,
venuThe code below isn't a working program, but has most of what you should need. Field-symbol <dyn_table> will always have what is in the grid.
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE,
<dyn_wa>.
DATA: pt_fieldcat TYPE lvc_t_fcat,
ls_fcat TYPE lvc_s_fcat,
new_table TYPE REF TO data,
new_line TYPE REF TO data.
CREATE OBJECT g_custom_container
EXPORTING container_name = g_container.
CREATE OBJECT g_grid EXPORTING i_parent = g_custom_container.
CLEAR ls_fcat.
ls_fcat-fieldname = 'MATERIAL'.
ls_fcat-datatype = 'CHAR'.
ls_fcat-intlen = 18.
ls_fcat-outputlen = 18.
ls_fcat-coltext = 'Material'.
ls_fcat-edit = 1.
APPEND ls_fcat TO pt_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'QUANTITY'.
ls_fcat-datatype = 'INT4'.
ls_fcat-intlen = 6.
ls_fcat-outputlen = 6.
ls_fcat-coltext = 'Qty'.
ls_fcat-edit = 1.
APPEND ls_fcat TO pt_fieldcat.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = pt_fieldcat
IMPORTING
ep_table = new_table.
* assign ref variable to a field symbol
ASSIGN new_table->* TO <dyn_table>.
* Create dynamic work area and assign to FS
CREATE DATA new_line LIKE LINE OF <dyn_table>.
ASSIGN new_line->* TO <dyn_wa>.
* data_itab is filled with data that you want in grid
LOOP AT data_itab INTO data_wa.
CLEAR <dyn_wa>.
ASSIGN COMPONENT 'MATERIAL' OF STRUCTURE <dyn_wa> TO <fs>.
<fs> = data_wa-material.
ASSIGN COMPONENT 'QUANTITY' OF STRUCTURE <dyn_wa> TO <fs>.
<fs> = data_wa-quantity.
APPEND <dyn_wa> TO <dyn_table>.
ENDLOOP.
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
i_structure_name = '<DYN_TABLE>'
is_variant = gs_variant
i_save = 'A'
i_default = 'X'
is_layout = gs_layout
it_toolbar_excluding = gt_exclude
CHANGING
it_outtab = <dyn_table>
it_fieldcatalog = pt_fieldcat[]
it_sort = gt_sort[]. -
How to trigger dropdown list click in editable alv?
I have an editable alv - and wehn a certain field is changed - I want to force the user to update a 2nd field, which is filled via a dropdown list.
Ive trapped the change of the first field, in the handle_data_changed method, but need to from there - call an event to simulate a click onthe 2nd dropdown field, and can not figure out how to do that. the method modify_cell wont work as it expects a value to be passed in and I need to use my dropwdown.
How is this done?
Do I have to change it from a dropdown to an f4 event? I woudl really rather not.Dear srivallika,
first you have do build up an steploop on your dynpro for the it_ccode-bukrs
AT PBO
loop at it_ccode cursor g_ccode_cur into wa_cccode.
my set loopc
module ccode_loopc.
endloop.
Include PBO
module ccode_loopc.
g_ccode_loopc = sy-loopc.
endmodule.
You only see via DIAG Dialog the displayed rows on the Dynpro.
So if you only have a steploop of 4 rows -- you only get 4 rows to the wgate.
Better use the field-set makro.
AT PBO
module rfc_fieldset_ccode.
INCLUDE PBO
module rfc_fieldset_ccode.
data: ls_ccode like line of it_ccode.
data: i type i.
I'll use deeper structure
perform rfc_fieldset_ccode.
but you also can define the code here
loop at it_ccode into ls_ccode.
add 1 to i.
field-set 'INDX' i i .
field-set 'BUKRS' i ls_ccode-bukrs .
endloop.
endmodule.
Why to do this? The field-set makro (don't forget to include AVWRTCXM at your topinclude) will send the data from internal table via AGATE to the WGATE.
Here now you can define the dropdown list:
srivallika, i'll hope i could help you a little. If you have any questions, you won't bother me. ASK!
With best regards
Thorsten -
Update out_tab data in editable ALV
Hi,
I am working on editable ALV using oops. I want to insert the data into database tables after user insert the data in ALV based on the application tool bar button action.
How to refresh the data in out_tab, If user click the application tool bar button then I need to save the ALV grid data in database table.
Please give me the valuable suggestions.
- Rayudusolved my self
-
Hi gurus in ALV how to edit the fields on out put list
hi gurus in ALV how to edit the fields on out put list
hi
REPORT ZSB_ALV_EDITABLE_SAMPLE.
TABLES: SFLIGHT.
DATA: gc_container TYPE scrfname VALUE 'LIST_AREA',
gc_custom_container TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
gc_grid TYPE REF TO CL_GUI_ALV_GRID,
gs_layout TYPE LVC_S_LAYO,
gt_fieldcat TYPE LVC_T_FCAT.
DATA: ok_code TYPE SY-UCOMM.
DATA: gt_outtab TYPE TABLE OF SFLIGHT.
*DYNPRO
CALL SCREEN 100.
*& Module STATUS_0100 OUTPUT
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS '100'.
CREATE OBJECT gc_custom_container
EXPORTING
container_name = gc_container
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
CREATE OBJECT gc_grid
EXPORTING
i_parent = gc_custom_container
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS = 5 .
PERFORM prepare_field_catalog CHANGING gt_fieldcat .
PERFORM prepare_layout CHANGING gs_layout .
PERFORM get_alv_display.
ENDMODULE.
*& Module USER_COMMAND_0100 INPUT
MODULE USER_COMMAND_0100 INPUT.
OK_CODE = SY-UCOMM.
IF OK_CODE = 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
CLEAR OK_CODE.
ENDIF.
ENDMODULE.
FORM prepare_field_catalog CHANGING gt_fieldcat TYPE LVC_T_FCAT.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_BUFFER_ACTIVE =
I_STRUCTURE_NAME = 'SFLIGHT'
I_CLIENT_NEVER_DISPLAY = 'X'
I_BYPASSING_BUFFER =
I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = gt_fieldcat[].
ENDFORM.
FORM prepare_layout changing p_gs_layout TYPE lvc_s_layo.
p_gs_layout-zebra = 'X'.
p_gs_layout-edit = 'X'.
ENDFORM. " prepare_layout
FORM get_alv_display .
SELECT * FROM sflight INTO TABLE gt_outtab UP TO 10 ROWS.
CALL METHOD gc_grid->set_table_for_first_display
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
IS_LAYOUT = gs_layout
CHANGING
it_outtab = gt_outtab
IT_FIELDCATALOG = gt_fieldcat
ENDFORM. " get_alv_display -
How to make cell editable alv in WebDynpro for ABAP?
I make Column editable ALV.(See under source code)
But I can't make Cell editable ALV.
How to make Cell editable ALV in WebDynpro for ABAP?
and..how to get changed data?
DATA: l_value TYPE REF TO cl_salv_wd_config_table.
l_value = l_ref_interfacecontroller->get_model( ).
* { EDITABLE
DATA: lr_column_settings TYPE REF TO if_salv_wd_column_settings,
lr_input_field TYPE REF TO cl_salv_wd_uie_input_field,
lr_column TYPE REF TO cl_salv_wd_column.
lr_column_settings ?= l_value.
lr_column = lr_column_settings->get_column( 'TOTAL_COUNT' ).
CREATE OBJECT lr_input_field
EXPORTING
value_fieldname = 'TOTAL_COUNT'.
lr_column->set_cell_editor( lr_input_field ).
DATA: lr_table_settings TYPE REF TO if_salv_wd_table_settings.
lr_table_settings ?= l_value.
lr_table_settings->set_read_only( abap_false ).the code seems to be correct....but where are you writing it?
put the code in the wddoinit method and it should work.
have a look at this article..
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3133474a-0801-0010-d692-81827814a5a1 -
How to make a filed mandatory of an editable ALV
Hi Guru,
Pls tell me how to make a filed mandatory of an editable ALV so that while a new records is inserted the mandatory fields are filled.hi,
You can make fields as mandatory fields using data changed event.
validate the entered or blank entries of a column in data changed event and call method 'add_protocol_entry' to raise errors.
Check the program : BCALV_EDIT_03 & BCALV_EDIT_04for more details.
Refer to this link....
about field in alv
obligatory field editable in ALV -
Published directly to YouTube - edited footage - How do I update?
I've used imovie 08 to publish directly to YouTube which works very well though decided I wanted to edit and update the file, and read the short info in their help files regarding further edits to files which states:
If you make further edits to your project in iMovie after you’ve published it to YouTube, the title bar indicates that your project is out of date and needs to be rendered again. Old versions of the movie are deleted and replaced by new ones when you render it again.
If you want to save the previous version of your movie before you edit it, you can do so by exporting it to the Finder.
Not exactly very helpful, so I edited footage of said file and clicked on Share > YouTube using the exact same file name, description and keywords, only to find that I had posted another copy onto YouTube.
Can anyone explain how to update (render) the footage already published to YouTube rather than creating a new file???
Any help on this is much appreciated!Connect to iTunes on the computer you usually Sync with and “ Check for Updates “...
See the Using iTunes Section Here...
How to update your iPhone, iPad, or iPod touch
The Current iOS version of iOS 6.1.3 will be Installed. -
How to create editable ALV grid/list
Hi,
I want to create editable ALV grid/list so that user can modify the data in the ALV.
And when user presses save button data will get saved in Z table.
I dont know how to create editable ALV so could anybody please help me regarding this?
Thanks & regards,
Sameer DhukeHI
check the demo programs BCALV_FULLSCREEN_GRID_EDIT
BCALV_GRID_EDIT
BCALV_TEST_GRID_EDIT_01
BCALV_TEST_GRID_EDITABLE
REUSE_ALV_GRID EDITABLE
ALV Grid editable fields
Just to make things a bit easy
In the layout,there is a property called edit, make it 'X' for the particular field whichever you want to make editable.
Hope this helps,
Suruchi
Message was edited by:
Suruchi Mahajan
Maybe you are looking for
-
RGB Stereo Receiver/Monitor TV connect to Macbook Pro?
I recently acquired a RGB Stereo Receiver/Monitor TV circa 1985 for free. Is there a way to connect to my Macbook Pro and watch DVDs on or stream movies onto the tv screen? Any help would be wonderful. Thanks!
-
Question Mark in Blue Box with Pictures
I recently have had a problem viewing pictures on myspace. It will show me some but not all and the pictures that don't come up have a Blue Square with a Question Mark in it. I have searched the whole discussions page but none of the answers have hel
-
Oracle Forms List Items :not populating list Dynamically using select Query
Hi , I need to create a list item. And the values to be populated in the list are from Database but I'm unable to populate from database. Please help me out how to populate the values from database. In Property Pallete we have Elements in List under
-
Does anybody know what command I could use in VBA to change the Current View in Excel for BPC 7M? Edited to add: I'm aware of the MNU_eTOOLS_MEMBERSELECTOR_x macro. What I'm looking for is code to change the current view systematically without going
-
I recently started using xmonad and I have an issue that I cannot manage to resolve. For some reason, when I use xmonad, my up arrow key no longer functions. It worked fine when I was originally using xmonad with KDM, but I've since started using jus