abap - 在列表报告中单击时,图标“未选中的框”未更改为“选中”
问题描述
我可以在列表报告中显示复选框,单击也可以。
我还可以使用 AT LINE-SELECTION 事件读取列表的当前行。
任何人都可以帮忙吗?
问题是单击复选框时复选框图标未更新。我试图找到解决方案,并尝试自己修复它但无法做到。
示例代码如下。
TYPE-POOLS:icon.
CONSTANTS:
c_unchecked TYPE icon_d VALUE icon_wd_iframe,
c_checked TYPE icon_d VALUE icon_checkbox.
TYPES: BEGIN OF ty_data,
carrid TYPE s_carr_id,
carrname TYPE s_carrname,
currcode TYPE s_currcode,
url TYPE s_carrurl ,
checkbox TYPE icon_d,
END OF ty_data.
DATA t_data TYPE STANDARD TABLE OF ty_data.
START-OF-SELECTION.
SELECT CARRID,CARRNAME,CURRCODE,URL FROM SCARR INTO TABLE @t_data.
LOOP AT t_data ASSIGNING FIELD-SYMBOL(<fs_data>).
<fs_data>-checkbox = c_unchecked .
WRITE:/10 <fs_data>-checkbox AS ICON HOTSPOT,
20 <fs_data>-carrid,
35 <fs_data>-carrname,
60 <fs_data>-currcode,
70 <fs_data>-url.
ENDLOOP.
AT LINE-SELECTION.
READ TABLE t_data ASSIGNING <fs_data>
INDEX sy-curow.
IF sy-subrc EQ 0.
IF <fs_data>-checkbox EQ c_unchecked.
<fs_data>-checkbox = c_checked.
REPLACE ALL OCCURRENCES OF c_unchecked IN sy-lisel WITH c_checked.
ELSEIF <fs_data>-checkbox EQ c_checked.
REPLACE ALL OCCURRENCES OF c_checked IN sy-lisel WITH c_unchecked.
ENDIF.
MODIFY LINE sy-curow.
ENDIF.
输出:
解决方案
更改AS ICON HOTSPOT
为AS CHECKBOX
应该可以解决您的问题。
推荐阅读
- python - 上下文版本冲突错误,Microsoft Azure 机器学习工作室
- firebase - React Native + Firebase / NodeMailer - 可能未处理的承诺拒绝
- javascript - 如何在反应中将异步函数的值存储到全局变量中?
- connection - 从 uipath 到雪花的 OBDC 连接
- c# - 在 TabControl 中获取可见的 TabItems
- authentication - 仅用于公钥身份验证的私钥和公钥的加密使用掩码
- java - Java - 如何摆脱标题栏?
- python - 如何调节绑定的激活('
') 事件到窗口的某个区域? - matlab - 洗牌向量元素,使两个相似的元素最多出现两次
- python - 如何使用 K 近邻将标记样本的分布分类?