WITH-、P-和O-文件背后的想法是什么?

What's the idea behing W-, P- and I-files?

我正在使用 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.

我-文件 (about.i):

/* Describes the help-about menu item */

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

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

命名随意,您偶尔会发现使用了其他扩展名。话虽如此:

“W”代表“window”,它应该包含与使 GUI 工作相关的代码。它经常被滥用来包含任何类型的代码。它通常被那些学会了在应用程序构建器上编码或者除了 Windows.

之外从未编码过任何东西的人以这种方式滥用。

“P”代表“Progress”并重新连接到“Procedure”。这是 Windows GUI 代码出现之前的过去的标准。任何“无头”代码或字符模式代码通常会进入 dot-p 文件。

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

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

启动程序由运行他们完成:

RUN myproc.p.

RUN guiproc.w.

或者,如果“启动”是指“启动会话”,那么您可以使用“-p procedureName”启动参数以及 prowin32.exe 或 prowin.exe for Windows批次或字符代码的 GUI 代码或 _progres.exe。