我想在屏幕的输入字段上显示文本,这是来自工作区域的值,分别是姓名、年龄和城市,如您所见。当我使用 TABLES
关键字声明 znew_fdkey01
和 znew_fdkey02
(透明表)时,如下所示:
TABLES: znew_fdkey01, znew_fdkey02.
它工作得很好。但是当我想在不使用 this 关键字的情况下获得相同的效果时,并且当我声明这样的变量时:
DATA: znew_fdkey01 TYPE znew_fdkey01,
znew_fdkey02 TYPE znew_fdkey02.
它不会在输入字段中显示文本。
为什么?
注意:这是初始化屏幕字段的代码(两种情况相同):
LOOP AT SCREEN INTO screen_wa.
IF screen_wa-name = 'ZNEW_FDKEY01-NAME'.
znew_fdkey01-name = lr_znewfdkey3-name.
ENDIF.
IF screen_wa-name = 'ZNEW_FDKEY01-AGE'.
znew_fdkey01-age = lr_znewfdkey3-age.
ENDIF.
IF screen_wa-name = 'ZNEW_FDKEY02-CITY'.
znew_fdkey02-city = lr_znewfdkey3-city.
ENDIF.
MODIFY SCREEN FROM screen_wa.
ENDLOOP.
最佳答案
这是正确的,TABLES定义了工作区域,同时需要确保屏幕(dynpro)和ABAP程序之间的自动通信,如ABAP Help中所述。 :
Table work areas declared using TABLES are interface work areas...
The statement TABLES is required for exchanging data between dynpro fields and the ABAP program, if the fields were defined in a dynpro in the program by being taken from ABAP Dictionary, . In the dynpro event PBO, the content of the table work area is passed to identically named dynpro fields. In PAI, the system takes the data from identically named dynpro fields.
(否则不要使用 TABLES 来声明工作区域,这已过时)
关于abap - 不使用 TABLES 关键字修改输入字段上的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63265035/