W-、P- 和 I- 文件的概念是什么?

问题描述

我正在使用 Progress Release 11.6 中的 appBuilder 和过程编辑器。

正如在之前的一些问题中提到的,我经常遇到 appBuilder 的问题,不想打开文件,破坏它们(删除部分源代码),...,现在似乎是限制的原因之一一个程序不能超过 32K,包括注释。

起初我想“我们回到石器时代了吗?”,请原谅我的反应。

但现在我开始认为我们完全滥用了整个概念,因此我想展示我对 W-、P- 和 I-文件的看法,请确认(或更正):

W 文件仅用于包含 GUI 定义,例如带有一些框架、按钮、填充字段等的表单,任何真正的编程都需要在 P 文件中完成。
P 文件包含真正的智能:在那里详细说明了程序和功能,可以由其余的 P 文件使用,或者最终由 W 文件使用。
I 文件只是为了包含一般行为。

举个例子:

W 文件

DEFINE VARIABLE combo_information VIEW-AS COMBOBox /* with some information on the content,if this is static */
...
ON CHOOSE OF combo_information DO:
  RUN very_large_procedure.
END.
...
{about.i} /* see here-after */
...

P 文件

PROCEDURE very_large_procedure:
DO /* a lot */
END.

I-文件(关于.i):

/* Describes the help-about menu item */

虽然这样工作(只将与 GUI 相关的东西放在 W 文件中,让“真正的”编程在 P 文件中完成),但永远不会达到提到的 32K 限制。最重要的是,添加一个过程很容易,appBuilder 不会删除它,因为 appBuilder 永远不会打开 P 文件

我的观点是否正确(以及 I 文件呢)?
如果是:一个技术问题:如何从 W 文件中的 P 文件启动程序? (显然,提到的例子不能像在 W 文件中那样工作,我没有提到在哪里寻找 very_large_procedure

解决方法

命名是任意的,您可能偶尔会发现正在使用其他扩展名。话虽如此:

“W”代表“窗口”,它应该包含与使 GUI 工作相关的代码。包含任何类型的代码经常被滥用。它通常会被那些在应用程序构建器上学习编码或从未在 Windows 以外的任何东西上编码的人滥用。

“P”代表“进度”并重新连接为“程序”。在 Windows GUI 代码出现之前,它是过去的标准。任何“无头”代码或字符模式代码通常都会进入 dot-p 文件。

“I”代表“包含”。这是创建可重用代码片段和常见“头文件”的一种非常古老的方法。包含文件通常被参数化。可能带有命名或位置参数。

另一个主要扩展名是“.cls”文件。这些适用于 OO4GL 类(OpenEdge 10 及更高版本)。

启动程序是通过运行它们来实现的:

RUN myproc.p.

RUN guiproc.w.

或者,如果“启动”的意思是“启动会话”,则使用“-p procedureName”启动参数以及 prowin32.exe 或 prowin.exe 用于 Windows GUI 代码或 _progres.exe 用于批处理或字符代码。