点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我正在处理ALV报告。 我想用一个按钮从ALV报告单元格更新数据库表。 我添加了按钮,我可以编辑ALV单元格,但它不会更新数据库。
我该如何解决?
数据库表名称:ZDANISMAN。
以下是几段代码:
DATA:gt_fcat类型slis_t_fieldcat_alv, gs_fcat slis_t_fieldcat_alv的类型行, gs_layout TYPE slis_layout_alv, gt_sort TYPE slis_t_sortinfo_alv, gs_sort slis_t_sortinfo_alv的类型行, gt_fcat_popup TYPE slis_t_fieldcat_alv, gt_fcat_popup_ok TYPE slis_t_fieldcat_alv, gs_variant TYPE变量, lt_rows TYPE lvc_t_row, w_selected_rows TYPE lvc_s_row," ALV控制行描述 &EXEC像SY-UCOMM, &UPDATE像SY-UCOMM, lv_tabix TYPE sy-tabix, MY_REPID像SY-REPID。 *表格内容。 类型:BEGIN OF wa_baldat, D_ID类型ZDANISMAN-D_ID, D_ADI TYPE ZDANISMAN-D_ADI, D_MAIL类型ZDANISMAN-D_MAIL, box(1)c型,"复选框,ALV屏幕的变量。 wa_baldat的结尾。 wa_baldat的类型it_baldat类型标准表。 DATA itab TYPE it_baldat。 数据wa_itab类型wa_baldat。 数据wa_danisman类型ZDANISMAN。 数据wa_modified TYPE ZDANISMAN。 数据i_modified ZDANISMAN的TYPE STANDARD TABLE。 表单USER_COMMAND和r_ucomm一样SY-UCOMM rs_selfield TYPE slis_selfield。 数据:带有标题行的lt_index_rows TYPE lvc_t_row, ref1类型参考cl_gui_alv_grid。 数据w_selected_rows类型lvc_s_row。 调用功能'GET_GLOBALS_FROM_SLVC_FULLSCR'导入e_grid = ref1。 调用方法ref1-> get_selected_rows导入et_index_rows = lt_index_rows []。 *它从复选框中选择了索引 在lt_index_rows索引大于0且行类型为INITIAL的LOOP AT中。 将表itab读入wa_itab索引lt_index_rows-index。 结局。 *将所选索引的内容输入i_modified。 循环至lt_index_rows INTO w_selected_rows。 读取表itab INTO wa_danisman索引w_selected_rows-index。 如果sy-subrc EQ 0。 将wa_danisman移动到wa_modified。 APPEND wa_modified TO i_modified。 万一。 结局。 *触发BUTTTON时,应修改数据库。 如果R_UCOMM ='&UPDATE'。 从表i_modified修改ZDANISMAN。 万一。 ENDFORM。
大家好,问题就这样解决了:
我将MANDT字段添加到内部表结构中,并且删除了UPDATE按钮,然后问题解决了。 此处代码:
亲切问候
您是否尝试过调试?
提交吗?
是的,表未更新
您必须在LOOP语句之外编写MODIFY语句。 当您将所有修改后的条目收集到i_modifed中时。 (我们应该避免多次UPDATES)
我将所选索引的文本更改为其他文本。 i_modified获得新值,但数据库表未更改。
我认为数据库表字段存在问题。 所以;
D_ID必须为:'0003'
D_ADI:" OZAN"
D_MAIL:'ccc@ccc.com '
一周热门 更多>