



























Dialog程序中,经常需要根据数据的不同,动态修改屏幕上控件的状态为只显示,隐藏,或者可编辑状态,以下为部分示例
一、修改屏幕上控件状态(不包含TableControl内的子控件)
对于此中情况,在Screen PBO事件下,
Using the example of a basic table control as your starting point please implement the following ABAP code changes:
MODULE populate_screen OUTPUT.
DATA: ld_line TYPE i.
* Set which line of itab is at the top of the table control
IF sy-stepl = 1.
tc100-lines =
tc100-top_line + sy-loopc - 1.
ENDIF.
* move fields from work area to scrren fields
MOVE-CORRESPONDING wa_ekko TO ztc_ekko.
ld_line = sy-stepl + tc100-top_line - 1.
* Changes individual field attributes of table control,
* Sets EBELN field on 3rd row of TC to not be an input field!
LOOP AT SCREEN.
IF ld_line EQ 3.
IF screen-name EQ 'ZTC_EKKO-EBELN'. "一般用Group1-Group4组条件进行控制,一次可以对一批控件进行状态修改
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
ENDMODULE. " populate_screen OUTPUT
二、修改Table Control内部子控件状态
controls: TC_ITEM type tableview using screen 0100.
field-symbols <FS_COLUMN> type CXTAB_COLUMN.
loop at TC_ITEM-COLS assigning <FS_COLUMN>.
if <FS_COLUMN>-SCREEN-GROUP1 = 'G01'.
<FS_COLUMN>-SCREEN-INPUT = '1'.
endif.
endloop .
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。