【发布时间】:2020-03-02 19:59:16
【问题描述】:
【问题讨论】:
标签: oracle oracle-apex
【问题讨论】:
标签: oracle oracle-apex
我现在看不到图片。
但是,一种选择可能是创建您自己的返回错误文本的验证。类似的东西
if :P1_NAME is null then
return ('Name must be entered');
end if;
提交页面后,消息会自动清除,不会留下任何错误。
【讨论】:
我不确定您是否可以更改系统消息,但如果任何项目发生更改,您可以使用 javascript 添加自定义错误消息。
为运行 javascript 的项目添加更改事件并使用以下代码:
var item = apex.item('P1_ITEM').getValue();
if(item == null) {
//First clear the errors
apex.message.clearErrors();
// Now show new errors
apex.message.showErrors([
{
type: "error",
location: [ "page", "inline" ],
pageItem: "P1_ITEM",
message: "Name is required!",
unsafe: false
},
{
type: "error",
location: "page",
message: "Page error has occurred!",
unsafe: false
}
]);
}
但是,这不会阻止用户提交,它只是让你更好地显示消息,所以你必须在提交后添加相应的验证。
如果您想从所需项目中删除系统错误消息,您可以禁用项目上的
Value Required选项并添加自定义验证,正如他们在其他响应中告诉您的那样。
如果您想更好地探索所有 apex.message 选项,我推荐此文档:
apex.item 的更多文档:
https://docs.oracle.com/cd/E71588_01/AEAPI/apex-item.htm#AEAPI29448
【讨论】:
有一些方法可以做这些事情。 首先,您可以进行自定义验证,这些都很棒,如果可能的话,您应该真正尝试使用它们。
然后在保存过程中也有错误消息,但这只是在过程失败时引发自定义消息,所以我从不使用它。
您似乎看到的是您收到了一条错误消息并且没有更改与该错误相关的字段。
如果保存过程是自定义的,您还可以在 END 之前放置一个 EXCEPTION 块,并在此处捕获错误并抛出自定义错误和自定义错误消息。
我真正喜欢的另一件事是实际重命名一些常见错误,这样我就不必单独捕获它们。假设客户端可能经常尝试保存相同的数据,从而破坏 PK。 Oracle 会抛出一个错误,但该消息对开发人员有好处,但对于我一直认为是一个几乎不会阅读并且会为所有事情哭泣的 3 岁孩子的客户来说不太容易理解。所以我做了一个错误处理函数,将它添加到 apex,所以当错误发生时,它会抛出一个很好的消息,通知客户端他们试图添加一些已经存在的数据。 所以,一个与 APEX 相关的错误处理函数,用来重命名一些正常的错误。
祝你好运
【讨论】: