按下按钮后触发 Oracle 表单
Oracle forms trigger after pressing a button
我创建了一个文本框和一个按钮。我想要发生的是按下按钮后文本框为空,焦点必须回到文本框上。
BEGIN
IF :blk.textbox IS NULL THEN
msg_alert('Error message', 'E', FALSE);
end if;
END;
我已经尝试将上面的代码放入 WHEN-BUTTON-PRESSED 触发器中,但没有任何反应。
将您的代码放入 :BLK.TEXTBOX 项的 WHEN-VALIDATE-ITEM 触发器中。
BEGIN
IF :blk.textbox IS NULL THEN
msg_alert('Error message', 'E', FALSE);
--if msg_alert procedure has no RAISE FORM_TRIGGER_FAILURE, then uncomment next line
-- RAISE FORM_TRIGGER_FAILURE;
end if;
END;
您还可以将按钮的 MOUSE NAVIGATE 属性 设置为 FALSE(或 NO),这样单击按钮后焦点就不会转到该按钮。
还使用 GO_ITEM 将焦点设置到文本项。样本,
GO_ITEM('blk.textbox');
为什么要重新发明轮子?将文本项的 REQUIRED
属性 设置为 YES
.
在阅读了您为@eifla001 的回答留下的评论后,我不确定您的代码是什么。这样的东西在我的 Forms 10g 上正常工作(但应该在 any 版本上工作):
-- WHEN-BUTTON-PRESSED trigger
if :blk.textbox is null then
go_item('blk.textbox');
end if;
如果不起作用,请检查 TEXTBOX 的属性。它真的是文本(或显示)项吗?启用了吗?是否有任何 SET_ITEM_PROPERTY
调用使其不可用?
因为,您要执行的任务确实微不足道,那应该就像那样。
我创建了一个文本框和一个按钮。我想要发生的是按下按钮后文本框为空,焦点必须回到文本框上。
BEGIN
IF :blk.textbox IS NULL THEN
msg_alert('Error message', 'E', FALSE);
end if;
END;
我已经尝试将上面的代码放入 WHEN-BUTTON-PRESSED 触发器中,但没有任何反应。
将您的代码放入 :BLK.TEXTBOX 项的 WHEN-VALIDATE-ITEM 触发器中。
BEGIN
IF :blk.textbox IS NULL THEN
msg_alert('Error message', 'E', FALSE);
--if msg_alert procedure has no RAISE FORM_TRIGGER_FAILURE, then uncomment next line
-- RAISE FORM_TRIGGER_FAILURE;
end if;
END;
您还可以将按钮的 MOUSE NAVIGATE 属性 设置为 FALSE(或 NO),这样单击按钮后焦点就不会转到该按钮。
还使用 GO_ITEM 将焦点设置到文本项。样本,
GO_ITEM('blk.textbox');
为什么要重新发明轮子?将文本项的 REQUIRED
属性 设置为 YES
.
在阅读了您为@eifla001 的回答留下的评论后,我不确定您的代码是什么。这样的东西在我的 Forms 10g 上正常工作(但应该在 any 版本上工作):
-- WHEN-BUTTON-PRESSED trigger
if :blk.textbox is null then
go_item('blk.textbox');
end if;
如果不起作用,请检查 TEXTBOX 的属性。它真的是文本(或显示)项吗?启用了吗?是否有任何 SET_ITEM_PROPERTY
调用使其不可用?
因为,您要执行的任务确实微不足道,那应该就像那样。