alv中,在条件过滤后,全选或取消全选时,会影响到所有数据(不仅仅过滤后的数据)的解决方法详解编程语言
alv展示数据时,有时需要全选或取消全选,对数据进行操作,一般的做法,在内表中给标志列赋值,但是,如果根据条件过滤数据后,全选或取消全选时,会影响到所有数据(不仅仅过滤后的数据),以下是解决方法:
* *
* FORM USER_COMMAND *
* *
FORM user_command USING rf_ucomm LIKE sy ucomm
rs TYPE slis_selfield . #EC CALLED
DATA: wl_answer TYPE c.
DATA: lr_grid TYPE REF TO cl_gui_alv_grid.
DATA : et_filtered TYPE lvc_t_fidx.
DATA:lv_tabix TYPE sy tabix.
CALL FUNCTION GET_GLOBALS_FROM_SLVC_FULLSCR
IMPORTING
e_grid = lr_grid.
CALL METHOD lr_grid- check_changed_data.
DATA:p_count TYPE i.
rs refresh = X . 自动刷新
CLEAR : et_filtered.
CALL METHOD lr_grid- get_filtered_entries
IMPORTING
et_filtered_entries = et_filtered.
CASE rf_ucomm.
WHEN SALL .
LOOP AT result.
lv_tabix = sy tabix.
READ TABLE et_filtered WITH KEY table_line = lv_tabix TRANSPORTING NO FIELDS.
IF sy subrc NE 0.
result chk = X .
MODIFY result.
CLEAR result.
ENDIF.
ENDLOOP.
WHEN SCLL .
LOOP AT result.
lv_tabix = sy tabix.
READ TABLE et_filtered WITH KEY table_line = lv_tabix TRANSPORTING NO FIELDS.
IF sy subrc NE 0.
result chk = .
MODIFY result.
CLEAR result.
ENDIF.
ENDLOOP.
WHEN FX11 .
CLEAR wl_answer.
CALL FUNCTION POPUP_TO_CONFIRM
EXPORTING
text_question = 确定要删除所选信息吗? 确定要删除吗?
icon_button_1 = 是 text-035 是
icon_button_2 = 否 text-036 否
default_button = 2
display_cancel_button =
start_column = 25
start_row = 6
IMPORTING
answer = wl_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF wl_answer = 1 .
CLEAR p_count.
LOOP AT result WHERE chk = X .
p_count = p_count + 1.
ENDLOOP.
IF p_count = 0.
MESSAGE 请选择要删除的数据! TYPE E .
STOP.
ENDIF.
PERFORM frm_del.
ENDIF.
ENDCASE.
rs refresh = X .
ENDFORM. USER_COMMAND
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20134.html
c相关文章
- JS判断数据类型的方法有哪些_c语言数据类型
- MongoDB最大连接数设置失效的异常分析过程与解决方法
- 5 种使用 Python 代码轻松实现数据可视化的方法详解编程语言
- Android中解析JSON格式数据常见方法合集详解编程语言
- java方法返回json数据详解编程语言
- 解决MySQL字符编码问题:基本设置方法(mysql字符编码设置)
- python获取天气api的数据(get方法)详解编程语言
- Oracle表数据去重实现方法(oracle表去重)
- 将MySQL转换为字符串的实现方法(mysql转化为字符串)
- 查看Oracle数据库密码的方法(Oracle怎么查看密码)
- MySQL存储二进制数据的方法(mysql二进制数据)
- 据Redis记录数据的快速查看方法(如何查看redis记录数)
- MySQL下载壁纸高级如何轻松地将数据存储和管理方式升级本文为您详细介绍了下载MySQL的方法以及如何使用它来管理和存储壁纸的过程
- Oracle中更改视图的有效方法(oracle中更改视图)
- Oracle中两行数据计算相除的方法(Oracle两行数据相除)
- javascriptfirefox不显示本地预览图片问题的解决方法
- mysql数据同步出现Slave_IO_Running:No问题的解决方法小结
- 解决Oracle删除重复数据只留一条的方法详解
- 忘记ftp密码使用pythonftplib库暴力破解密码的方法示例
- sql2000数据库清除重复数据的二种方法