对于那些知道的人,
如何有条件地阻止在Progress ABL中执行包含?那有可能吗?如果不是,您的目的是什么?
基于用户选择-这是一个示例:
如果checkBox =是,则 {randomInclude.i} 其他 “做剩下的事情”
答案 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。