正如我们所知道的,通常一个alv的输入输出控制只会精确到列,比如说让这一列入库地点可输入而另一列入库单号不可输入。
可当我们想要一个alv的某一列有的可以修改而有的不能修改时我们该怎么办呢?
比如说当入库单号为1开头时入库地点可修改,而入库单号为2开头时不可修改。我们该怎么办呢?
这需要给所要输出的表(这里是gt_output)添加一个字段 celltab TYPE lvc_t_styl, "为实现特殊效果定义的字段。
这是一个表,如果你要将该行的某列设置为可修改(这里是LGORT),那就在这个表里按如下方式添加行。
wa_celltab type lvc_t_styl
CLEAR wa_celltab.
wa_celltab-fieldname = 'LGORT'.
wa_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT wa_celltab INTO TABLE it_celltab.
GS_OUTPUT-celltab = it_celltab.
MODIFY gt_output FROM gs_output INDEX lv_index.
然后就可以用REUSE_ALV_GRID_DISPLAY_LVC显示该ALV了。
如果要显示成按钮:style = cl_gui_alv_grid=>mc_style_button.
如果要显示成单击热点:style = cl_gui_alv_grid=>MC_STYLE_HOTSPOT