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

时间:2018-10-19 22:19:39

标签: openedge progress-4gl

对于那些知道的人,

如何有条件地阻止在Progress ABL中执行包含?那有可能吗?如果不是,您的目的是什么?

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

如果checkBox =是,则     {randomInclude.i} 其他 “做剩下的事情”

2 个答案:

答案 0 :(得分:3)

您可能需要共享包含文件的代码,以使我们的要求更加清楚。

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

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

您需要执行do-block,因为您只是不知道包含文件中有多少条语句。

答案 1 :(得分:0)

在程序中定义包含文件时,包含的内容将放置在程序中的该位置。在您的示例中,randominclude.i中的任何内容都处于“ then”状态。如汤姆所说,您可能只需要将其包装在DO-END块中即可。您也可以将其放在包含文件中。

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

MESSAGE "Included" VIEW-AS ALERT-BOX INFORMATION.

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

&SCOPED-DEFINE UseIt

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

运行该命令,您将收到“包含”弹出消息。但是将预处理器更改为此:

&SCOPED-DEFINE DontUseIt

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