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

问题描述 投票:1回答:2

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

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

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

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

sql oracle plsql oracleforms
2个回答
1
投票

这个:

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

不这样做。发布(如果你引用内置的POST)(也不是COMMIT,就像我们所说的那样)并不能清除全局变量。将它显式设置为NULL确实如此 - 检查表单是否已在代码中的某处完成。怎么样?在调试模式下运行表单,跟踪其执行情况并查看正在进行的操作。

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


1
投票

这将工作:

     IF GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM,UPDATE_COLUMN) ='TRUE' THEN
     Copy(Get_Item_Property(itm, Database_Value), :System.Cursor_Item);
© www.soinside.com 2019 - 2024. All rights reserved.