动态声明表中的参数



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

例如:

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

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

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

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新