我构建了一个表单,用户可以在其中查看从表中提取的多行数据。用户可以选择一行,然后按下按钮拒绝该行中的数据(在某些状态字段中标记为拒绝)。
我还设计了一个拒绝确认对话框,用户可以输入一些评论或拒绝原因。
我已将对话框 Canvas 设置为显示在其自己的窗口上,并将“类型”属性设置为“对话框”。
当用户选择要拒绝的行时,执行的代码如下:
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');
唯一的问题是:一旦对话框表单出现,它就会隐藏父表单,直到表单被关闭。如何将对话框表单显示在父表单之上,并且它们都可见(以模态方式?)
最佳答案
不同 Canvas 之间的导航可能有点棘手。很难说没有表单在我面前有什么问题,但我应该做的第一件事是确保“主” Canvas 的“进入时提高” Canvas 属性设置为"is"。当您将光标移回 block “BLK_ALL_RECORDS”时,这应该会强制显示此 Canvas 。
另一种选择是在取消对话框逻辑中使用 SHOW_VIEW() 来强制显示主 Canvas 。
关于forms - 如何在 Oracle Forms Builder 中显示对话框 Canvas ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13437837/