2
我正在使用类cl_gui_alv_grid
创建ALV输出网格。一个输出表的列的通过使用fieldcatalog的相应记录定义为一个复选框:将ALV输出网格中的复选框标记为选中
ls_fcat-checkbox = 'X'.
ls_fcat-edit = 'X'.
对于包含复选框的列的所有记录,它们都设置未选中。我的问题是我可以实现什么逻辑,以便对于某些行,当显示ALV时将复选框设置为选中状态。
我正在使用类cl_gui_alv_grid
创建ALV输出网格。一个输出表的列的通过使用fieldcatalog的相应记录定义为一个复选框:将ALV输出网格中的复选框标记为选中
ls_fcat-checkbox = 'X'.
ls_fcat-edit = 'X'.
对于包含复选框的列的所有记录,它们都设置未选中。我的问题是我可以实现什么逻辑,以便对于某些行,当显示ALV时将复选框设置为选中状态。
如果您希望根据alv网格中最初显示的数据设置复选框,只需在条件匹配的情况下使用abap_true(='X')填充outtab复选框字段。如果你想而不是使用fieldcatalog的复选框参数,你会看到'X'选中,''未选中。
如果你想根据用户输入设置的复选框,之后便编辑了ALV网格的某些字段,请使用以下ALV网格事件来改变outtab:
METHODS:
handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed,
handle_data_changed_finished FOR EVENT data_changed_finished OF cl_gui_alv_grid, "executed only if no errors, outtab holds changed data
我也发现了一些意见,我做,当我不得不处理这些事件
*&---------------------------------------------------------------------*
*& Method handle_data_changed
*&---------------------------------------------------------------------*
* raised when at least one cell is modified in the ALV
* - modified entries are not stored in gt_outtab yet, but er_data_changed object
* - mt_good_cells holds every changed field thats valid according to type declaration
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Method handle_data_changed_finished
*&---------------------------------------------------------------------*
* - raised when data validation is valid
* - NOW outtab holds valid changed data
*----------------------------------------------------------------------*
是的,我想显示一些行显示ALV时第一时间被检查。我填写了outtab,现在可以。谢谢 –