如何在开机自检完成后保留字段的初始值



我有一个Oracle Forms应用程序。有一个带有日期字段的表单,我需要保留其初始值(加载表单时(,以将其与字段中的实际值进行比较。表单上还有一个按钮,用于发布更改。

我尝试使用

全局变量存储初始值并检查它是否已更改,我也尝试简单地检查 :system.record_status != 'QUERY' 以跟踪日期是否被修改。

问题是,目前,当

按下按钮并完成发布时,所有全局变量的值都变为空,因此我无法将初始值与新值进行比较,并且 :system.record_status 再次变为"QUERY",如果用户修改了某些内容,我看不到更多。

如何保留初始值或跟踪数据是否已更改,无论用户发布是否更改?

这个:

目前,当按下按钮并完成发布时,所有全局变量的值都变为空的问题,因此我无法将初始值与新值进行比较

不是那样工作的。Post(如果您指的是内置POST((也不是COMMIT,因为我们正在这样做(不会清除全局变量。显式将其设置为 NULL 可以,因此 - 检查表单是否在代码中的某个地方完成过。如何?在调试模式下运行表单,跟踪其执行情况并查看发生了什么。

另一件可能出错的事情是全局变量的数据类型CHAR如此 - 如果您打算将其与不同的数据类型值进行比较,则应执行转换。由于它是一个日期值,请考虑TO_DATE函数应用于具有适当格式掩码的全局变量。

这将

起作用:

     IF GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM,UPDATE_COLUMN) ='TRUE' THEN
     Copy(Get_Item_Property(itm, Database_Value), :System.Cursor_Item);

最新更新