如何有条件地阻止使用 Progress ABL 执行包含文件?

How to conditionally prevent an include file from being executed with Progress ABL?

对于那些知道的人,

如何有条件地阻止 include 在 Progress ABL 中执行?这可能吗?如果不是,你的目的是什么?

基于用户选择 - 这是一个示例:

如果 checkBox = yes 那么 {randomInclude.i} 别的 "Do remaining things"

当您在程序中定义一个包含文件时,包含的内容将放置在程序中的那个位置。在您的示例中, randominclude.i 中的任何内容都卡在 "then" 条件中。正如汤姆所说,您可能只需要将它包装在一个 DO-END 块中。您也可以将其放入包含文件中。

您还可以在编译时有条件地包含文件。假设这是 randominclude.i:

的内容
MESSAGE "Included" VIEW-AS ALERT-BOX INFORMATION.

您可以在程序中定义预处理器以添加包含:

&SCOPED-DEFINE UseIt

&IF DEFINED(UseIt) &THEN
    {randominclude.i}
&ENDIF

运行 然后您将收到一条 "Included" 弹出消息。但是将预处理器更改为:

&SCOPED-DEFINE DontUseIt

运行 程序现在不会发生任何事情,因为 "UseIt" 不再定义,所以 randominclude.i 不包含在程序中。

您可能需要共享包含文件的代码,以便我们更清楚地了解您的请求。

TheDrooper 的回答显示了如何根据编译时条件进行操作。您的示例似乎基于运行时解决方案。在那种情况下我会这样做:

If checkBox = yes then do:
    {randomInclude.i} 
end.
Else do:
    "Do remaining things"
end.

do 块是必需的,因为您只是不知道包含文件中有多少语句。