如何在 OpenEdge Progress 4GL 中创建 GUI

How to create GUI in OpenEdge Progress 4GL

在看一个用 Progress 4GL 开发的框架时,我看到源代码如下:

DEFINE FRAME FRM1
     Field1 AT ROW 1.54 COL 3 NO-LABEL
     Field2 AT ROW 1.81 COL 33
     Field3 AT ROW 2.54 COL 7.29 COLON-ALIGNED
     ...

这种硬编码的工作方式与 Java (Swing) 和 Delphi(面板)中的 GUI 开发有很大不同,后者使用通用布局,对调整大小有影响,使用不同的决议,...

我的同事不知道我在说什么,因此我的问题是:OpenEdge Progress 4GL 中的现代布局是否可行?

提前致谢

老化石(像我)使用文本编辑器编写代码,我们中的一些人更喜欢手动布局。

但是很酷的孩子们使用像 Progress Developer Studio for OpenEdge 这样的可视化 IDE 来布局他们的 GUI 东西。

(PDSOE 支持“往返”编辑,因此如果我不想使用可视化工具,我可以弹出打开生成的代码并手动调整内容。)

4GL GUI 基于旧的 windows 技术,具有匹配的局限性。

您有 2 个 UI 迁移选项。

  1. 转到可以与 4GL 本地交互的 .NET,或者
  2. 使 API 可用 - 然后您可以使用任何支持对服务器进行 REST 调用的 UI 系统。这将需要一个 Progress Appserver 来实现。

Define frame 定义静态框架。大小和小部件在编译时定义。

创建框架在 运行 时间创建一个动态框架,可以在 运行 时间填充动态创建的小部件。

我们有一个系统层,可以将我们的后端定义转换为经典 windows 小部件或发送到 javascript 呈现它的浏览器的数据集。

对于windows 客户端,有一个.p 负责根据数据集创建所有小部件。在某些时候 - 为了好玩 - 我还创建了一个 .p 来创建 .Net 小部件而不是经典的 ABL 小部件。