1

是否可以从表条目动态创建参数?

例如像这样:

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 不是常量的错误。这是否意味着不可能动态声明参数或者我只是做错了?谢谢

4

2 回答 2

2

正确的。PARAMETERS语句在编译时编译成选择屏幕,而不是在运行时。因此,您无法按照您提出的方式做您想做的事。

但是,可以有某种形式的动态屏幕。

看看这个问题的答案:对于普通 ABAP 屏幕中的 I/O 字段,我可以让它们表现得像 SELECT-OPTIONS 吗?

这为您提供了两个起点:您可以动态调用的子屏幕的使用,或FREE_SELECTIONS_INIT作为示例的使用。

于 2013-03-01T07:13:59.997 回答
1

根据您对此的疯狂程度,您还可以进行调查: http ://help.sap.com/abapdocu_702/en/abenabap_language_dynamic.htm

您可以加载 DYNPRO 并动态更改屏幕,激活然后运行调用更改屏幕的报告。

这当然是与使用 PARAMETERS 不同的方法,并且应该只用于宠物项目,而不是真正的生产代码,因为这些语句是供内部使用的。我相信这是 SE16 在为表格生成选择屏幕时使用的方法。

于 2013-03-01T22:33:18.457 回答