OpenEdge ABL UI 冻结 window 直到 Popup 关闭

OpenEdge ABL UI Freeze window until Popup closes

我正在使用 OpenEdge ABL 创建一个 window,只需按一下按钮即可 运行 辅助 window。但是,我试图让 first/parent window 在 child window 处于 运行ning 时冻结,并在 child [=29] 时恢复=] 关闭。

我试图在 parent window 上使用 WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW 但是这返回了错误: [= 中使用的小部件句柄无效20=] 语句。 WAIT-FOR 已终止 (4122)。

为了运行 child window 我用:

RUN D:\adherenceEdit_12875-Win.w(cUserId,cShiftCode,dtDate).

您是否尝试使 child window 模态化?

我想你可以考虑使用 TOP-ONLY or ALWAYS-ON-TOP attributes on the window, or make the child a dialog box

我通过添加解决了这个问题:

 DO WITH FRAME {&FRAME-NAME}:

将按钮的灵敏度设置为 false 意味着在 child window 为 运行 时不会按下它们。

  ASSIGN CURRENT-WINDOW:SENSITIVE = FALSE.


  RUN D:\adherenceEdit_12875-Win.w(INPUT cUserId,
                                   INPUT cShiftCode,
                                   INPUT dtDate).

在 child 关闭后,parent window 继续 运行 并重置按钮灵敏度,允许它们被按下

  ASSIGN CURRENT-WINDOW:SENSITIVE = TRUE.

 END.

我不确定这是否是最有效的方法,@nwahmaet 的回答可能提供了一种更有效的方法。