如何避免 AppBuilder 删除代码片段

问题描述

我正在开发基于 AppBuilder 11.6 版的 Progress-4GL 编程环境。

到目前为止,我一直在更改已经存在的 *.w 和 *.p 文件,但现在我想从头开始创建我的 *.w 文件

我创建了一个窗口,并放置了一个浏览器、一个填充字段和一个按钮。现在我想向该按钮添加一个事件。为了做到这一点,我在 *.w 文件添加了以下几行:

ON CHOOSE OF btn-Start_Query IN FRAME DEFAULT-FRAME
DO:
    MESSAGE "button is pushed" VIEW-AS ALERT-Box.
END.

但是,当我保存 *.w 文件时,在 AppBuilder 中重新打开它并再次将文件保存在那里,这些代码行将被删除

我已经明白,为了避免这种情况,我需要用 Scoped-defineAnalyze:suspend/resume 行“包装”这些代码行,如下所示:

&Scoped-define SELF-NAME btn-Start_Query
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL btn-Start_Query C-Win
ON CHOOSE OF btn-Start_Query IN FRAME DEFAULT-FRAME
DO:
    MESSAGE "button is pushed" VIEW-AS ALERT-Box.
END.
&ANALYZE-RESUME

然而,这似乎不起作用。

你能解释一下我到底需要做什么才能避免我的代码行被删除吗?

顺便说一句:我知道我正在使用极其过时的技术,但我只在这里工作了两个星期,所以我没有权力强迫我的老板改变他的开发环境,只是为了我。

解决方法

推荐的方法是使用 AppBuilder 的向导为您创建具有所需 AppBuilder 标记的触发器块。

  • 将按钮添加到窗口
  • 选择设计画布上的按钮
  • 在 AppBuilder 主窗口(铅笔)中选择“编辑代码”按钮

enter image description here

这将创建一个空的默认触发器块(如果是按钮,那就是选择)。要创建不同的事件,请使用部分编辑器窗口中的“新建...”按钮。

enter image description here