如何有条件地阻止使用 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 块是必需的,因为您只是不知道包含文件中有多少语句。
对于那些知道的人,
如何有条件地阻止 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 块是必需的,因为您只是不知道包含文件中有多少语句。