点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)长时间旅行后试图进入ALV .....
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)长时间旅行后试图进入ALV .....
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
长时间旅行后试图进入ALV ...我有问题。
我已经建立了可以正常工作的可编辑ALV。 可以根据需要输出字段,也可以输出希望编辑的字段。 它基本上是一个自定义表,完成后我将其保存回数据库。 我的问题是,当我按下"保存"按钮时,我的内部表无法获取对数据所做的更改,而且我不知道要保存回数据库的内容。 这是我构建网格的地方...
*&--------------------------------------------- ------------------------ * *&表格CREATE_AND_INIT_ALV *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * FORM create_and_init_alv更改pt_outtab喜欢gt_outtab [] pt_fieldcat TYPE lvc_t_fcat pt_exclude TYPE ui_functions。 创建对象g_custom_container 出口 container_name = g_container。 创建对象g_grid 出口 i_parent = g_custom_container。 *建立野猫并设置专栏团队 *启用编辑。 为下拉列表框分配一个句柄。 执行build_fieldcat更改pt_fieldcat。 *(可选)将通用功能限制为"仅更改"。 *(用户将无法添加新行)。 PERFORM exclude_tb_functions更改pt_exclude。 ENDFORM。 " CREATE_AND_INIT_ALV
这是我填充网格的地方
*&--------------------------------------------- ------------------------ * *表格REFRESH_DATA *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * * <-P_GT_OUTTAB文字 * ------------------------------------------------- --------------------- * FORM refresh_data使用pa_initial就像wa_initial 更改pt_outtab喜欢gt_outtab [] pt_fieldcat TYPE lvc_t_fcat pt_exclude TYPE ui_functions。 *从数据库表中获取数据。 设置基准以进行比较 清除pt_outtab。 SELECT * FROM ztable INTO TABLE pt_outtab。 IF sy-subrc NE 0。 其他。 gt_outtab2 = pt_outtab。 万一。 如果pa_initial ='1'。 g_grid-> register_edit_event(i_event_id = cl_gui_alv_grid => mc_evt_enter)。 呼叫方法g_grid-> set_table_for_first_display 出口 it_toolbar_clusion = pt_exclude 改变 it_fieldcatalog = pt_fieldcat it_outtab = pt_outtab。 *设置可编辑单元格以准备初始输入 调用方法g_grid-> set_ready_for_input 出口 i_ready_for_input = 1。 其他。 调用方法g_grid-> refresh_table_display。 万一。 ENDFORM。
因此,我希望我能够访问发送给ALV-GT_OUTTAB的同一表中的更新日期? 不幸的是,要获取表中的旧值而不是我编辑的新值? 所以保存不会做任何事情?
FORM save_total_updates更改pt_outtab喜欢gt_outtab [] pt_outtab2喜欢gt_outtab []。 清除gt_modified。 循环至pt_outtab INTO gs_modified。 使用键resrc= gs_modified-resrc读取表pt_outtab2 INTO gs_original。 如果sy-subrc = 0。 IF gs_modified NE gs_original。 追加gs_modified至gt_modified。 万一。 万一。 结局。 从表gt_modified修改ztable。 如果sy-subrc = 0。 消息"保存的值"类型为" I"。 其他。 消息"错误保存值"类型" I"。 万一。 ENDFORM。
嗨
首先注册alv网格类的两个事件
这些是MC_EVT_ENTER
MC_EVT_MODIFIED
使用方法REGISTER_EDIT_EVENT
在上面之后,您还应该再处理一个事件,即DATA_CHANGED_FINISHED
您在这里将我置于正确的位置。 另外-称为方法CL_GUI_ALV_GRID-> CHECK_CHANGED_DATA。 此方法执行更改验证并触发事件DATA_CHANGED。
使用方法G_GRID-> CHECK_CHANGED_DATA()
一周热门 更多>