Oracle Form - 日历组件点不开(已解决)

  • 问题现象

有某表单界面,在新建记录时,其中一个日期字段点击值列表不能弹出日历,且会叮咚响,但是左下角没有任何错误信息显示;如果在这个字段输入点什么内容,就能点开日历。

与此同时界面上另一个日期字段却可完全正常的使用日历。

  • 检查过程

点击该字段值列表,没有弹出日历时,通过诊断/检查看到global.frd_debug内容为Entering calendar.calendar_reset_all

从而定位到库文件APPDAYPK/calendar_reset_all

又在检查调用calendar_rest_all的代码中发现APPDAYPK/calendar_show中有如下代码(calendar_show是calendar.show调用的过程)

Oracle Form - 日历组件点不开(已解决)_第1张图片

可以看到当字段不可更新且内容为空时,将不弹出日历

进一步检查发现该数据块的WHEN-NEW-RECORD-INSTANCE触发器中将该项目实例设置成了不可更新

SET_ITEM_INSTANCE_PROPERTY ('XXX.XXX', CURRENT_RECORD, UPDATE_ALLOWED, PROPERTY_FALSE);

  • 解决办法

原功能设计是为了阻止更新已有记录的这个字段,虽然上述设置不会影响新建操作,但想不到对日历组件产生影响。

症结在于UPDATE_ALLOWED属性,可以有很多调整办法避免在新建操作中把它设置为FALSE

你可能感兴趣的:(Oracle学习笔记,oracle,forms)