POST完成后如何保持字段的初始值

时间:2019-04-28 02:54:53

标签: sql oracle plsql oracleforms

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

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

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

如何保持初始值或跟踪数据已更改,无论用户发布更改与否无关紧要?

2 个答案:

答案 0 :(得分:1)

这将起作用:

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

答案 1 :(得分:1)

此:

  

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

不能那样工作。发布(如果您是内置POST的用户)(也不是COMMIT,因为我们正在使用它)不会清除全局变量。将其显式设置为NULL确实可以,因此-检查表单是否已在代码中的某处完成。怎么样?在调试模式下运行该表单,跟踪其执行并查看发生了什么。

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