如何在没有验证的情况下禁用oracle apex中的过去日期

如何在没有验证的情况下禁用oracle apex中的过去日期,oracle,oracle-apex,oracle-apex-5,oracle-apex-5.1,Oracle,Oracle Apex,Oracle Apex 5,Oracle Apex 5.1,通过在设置中输入最小日期+0d,我在Apex v4.1的日期选择器中禁用了过去的日期 但当我第二天试图编辑和保存数据时,该字段显示错误。有人能帮忙吗。 我无法查看图像,但是-按照您描述的方式-我建议您删除日期选择器项中的+0d,并创建自己的验证,其类型为PL/SQL函数返回错误文本;它将检查项目值是否等于或大于TRUNC(SYSDATE),例如 if :P1_DATE_ITEM < trunc(sysdate) then return ('Error - date has to be

通过在设置中输入最小日期+0d,我在Apex v4.1的日期选择器中禁用了过去的日期 但当我第二天试图编辑和保存数据时,该字段显示错误。有人能帮忙吗。

我无法查看图像,但是-按照您描述的方式-我建议您删除日期选择器项中的
+0d
,并创建自己的验证,其类型为PL/SQL函数返回错误文本;它将检查项目值是否等于或大于
TRUNC(SYSDATE)
,例如

if :P1_DATE_ITEM < trunc(sysdate) then
   return ('Error - date has to be larger or equal to today''s date');
end if;
if:P1\u DATE\u ITEM
然后将验证的服务器端条件设置为,例如,
项为NULL,而“项”是表的主键项(或者-如果您使用的是
ROWID
,则使用它)


这样做,您会告诉Apex仅对新创建的行执行控制(因为它们的主键列值尚未设置,也没有
ROWID
,因为行未保存到数据库中)。“旧”行有它,验证不会启动。

我在一个页面上有50多个日期选择器字段。输入字段进行验证需要开发人员付出更多的努力。是否有其他方法可以这样做,它会将页面上灰显的日期的数据保存在db中?您可以创建一个数据库触发器,该触发器将拒绝无效值,但您仍然必须命名其中的所有50个日期列。也许有一个简单的方法可以解决这个问题,但我不知道。像这样的验证只有在只插入新记录的页面上才有意义。我可能会考虑创建单独的窗体来创建与更新记录,虽然我更喜欢Littlefoot的答案。