是否可以从表条目动态创建参数?
例如:
SELECTION-SCREEN BEGIN OF BLOCK example WITH TITLE text-01
LOOP AT example_internal_table INTO example_workarea
IF example_workarea-field = criteria.
PARAMETERS: (example_workareafield) AS CHECKBOX.
ENDIF.
ENDLOOP.
SELECTION-SCREEN END OF BLOCK example.
上面的代码片段会抛出example-workarea-field不是常量的错误。这是否意味着不可能动态声明参数或者我只是做错了?感谢
答案 0 :(得分:2)
正确。 PARAMETERS
语句在编译时编译到选择屏幕,而不是在运行时。因此,你不能以你提出的方式做你想做的事。
但是,可以使用某种形式的动态屏幕。
查看此问题的答案:For the I/O fields in a normal ABAP screen, can i get them to behave like a SELECT-OPTIONS?
这为您提供了两个起点:使用可以动态调用的子屏幕,或者使用FREE_SELECTIONS_INIT
作为示例。
答案 1 :(得分:1)
根据您对此的疯狂程度,您还可以调查: http://help.sap.com/abapdocu_702/en/abenabap_language_dynamic.htm
您可以加载DYNPRO并动态更改屏幕,激活然后运行调用已更改屏幕的报告。
这当然是使用PARAMETERS的另一种方法,应该只用于宠物项目,而不是真正的生产代码,因为这些语句供内部使用。我相信这是SE16在为表格生成选择屏幕时使用的方法。