2

我已经构建了一个表单,用户可以在其中查看从表中提取的多行数据。用户可以选择一行,然后按下按钮拒绝该行中的数据(在某些状态字段中标记为拒绝)。

我还设计了一个拒绝确认对话框,用户可以输入一些评论或拒绝理由。

我已将对话框画布设置为出现在其自己的窗口中,并将 Type proeperty 设置为 Dialog。

当用户选择要拒绝的行时,执行以下代码:

BEGIN
  GO_BLOCK('BLK_ALL_RECORDS');

  FIRST_RECORD;


    IF :FRM_ALL_ROWS.CHK_SELECT = 1 THEN
      :FRM_REJECTION.ID := :FRM_ALL_ROWS.ID;
        GO_BLOCK('BLK_REJECTION');
        SHOW_VIEW('CNV_REJECTION');
        EXIT;
     ELSE
         NEXT_RECORD;
     END IF;   

END;

并且拒绝表有两个按钮,一个是确认,一个是取消。现在让我们只关注取消按钮。这是按下取消按钮后执行的代码:

:BLK_ALL_ROWS.CHK_SELECT := 0;  /* Forces removal of the check mark */
GO_BLOCK('BLK_ALL_RECORDS'); 
HIDE_VIEW('CNV_REJECTION');

唯一的问题是:一旦对话框表单出现,它就会隐藏父表单,直到表单被关闭。如何在父表单的顶部显示对话框表单,并且它们都可见(以模态方式?)

4

2 回答 2

1

不同画布之间的导航可能有点棘手。很难说没有表格在我面前有什么问题,但我应该做的第一件事是确保“主”画布的“进入时提升”画布属性设置为“是”。当您将光标移回块“BLK_ALL_RECORDS”时,这应该会强制显示此画布。

另一种选择是在取消对话框逻辑中使用 SHOW_VIEW() 来强制显示主画布。

于 2012-11-19T08:21:20.313 回答
1

我终于发现了问题所在。父 Window 有一个属性 [ Hide On Exit] ,它是默认的,Yes并且每次显示另一个窗口时都会使父窗体消失。我将其设置为NO并调用了另一种形式。这次两个窗口都是可见的,模态窗口始终位于顶部。

于 2012-11-19T10:54:11.590 回答