Table Control中我们可以根据每行记录的字段条件限制相关的单元格为不可输入,例如某个字段内容为A01时,那么该字段就不允许更改,通常我们会通过在PAI里面的MODULE做不允许更改的检查,这样虽然可以实现但是缺乏直观性,用户只能在输入以后才会得到字段不能更改的提示,如果我们直接将该单元设置为不可输入项那么可以大大减少用户的操作繁琐度。
Eg:
*在PBO循环table control的内表
PROCESS BEFORE OUTPUT.
LOOP AT lt_mara
WITH CONTROL tc1
CURSOR tc1-current_line.
MODULE tc1_get_lines.
ENDLOOP.*当lt_mara-mtde为A01时设置该字段为不可输入
MODULE tc1_get_lines OUTPUT.
g_tc1_lines = sy-loopc.
IF lt_mara-mtde EQ 'A01'.
LOOP AT SCREEN.
IF screen-name = 'LT_MARA-MTDE'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE. "TC1_get_lines OUTPUT最终效果A01内容的单元格将无法修改