以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]修改记录保存问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=126643)

--  作者:havent_bao
--  发布时间:2018/10/25 17:48:00
--  [求助]修改记录保存问题
这个问题有点说不清楚,因为找不到原因。
我的表之间建立了一些关联,并且设置了事件(列重置)。有时候,我修改了部分记录后,关联数据找不到新加的数据,重置列也获取不到新数据。点存盘也还是这样。但如果关闭窗口会提示保存,再重新打开数据就正常了。
这让我觉得很奇怪,是不是与加载之类的有关?是否有别的办法,不用重新打开也能正常存盘/加载或获取数据?

--  作者:有点蓝
--  发布时间:2018/10/26 8:37:00
--  
请上传具体实例说明
--  作者:havent_bao
--  发布时间:2018/10/26 10:25:00
--  
这不知道怎么传。我再描述一下吧:
A表为父,B表为子
改B表数据,A表中有一个事件触发从B表获取数据,就下面这一段:
Dim drs1 As List(of DataRow)  = DataTables("合同金额").SQLSelect("合同编号=\'" & e.DataRow("合同编号") & "\'")
Dim Sum1 As Double = 0
For Each dr1 As DataRow In drs1
Sum1 = Sum1 + dr1("合同金额")
Next

        e.DataRow("合同金额") = Sum1
获取到的是旧数据,不是B表(合同金额)中修改后的数据。点过保存也还是一样。这时候关闭窗口,会提示是否保存修改。再重新打开一切正常获取。显然,是有什么东西没有保存。

其实现在看来就一张表好象也存在这个问题,就改完点保存,关闭窗口,会有提示保存。

--  作者:有点蓝
--  发布时间:2018/10/26 10:37:00
--  
参考:http://www.foxtable.com/webhelp/scr/1453.htm
--  作者:havent_bao
--  发布时间:2018/10/26 11:51:00
--  
嗯,问题可以解决,还是很感谢。
这个考虑也的确是有这样的需求,但我对这个设计有疑问(只是建议考虑,并不需要回复):
1、改单价的时候不改变已经存在的订单(这个是有道理的,如果是订单这类需求),但重启就改了还是不应该的,如果是考虑已经生成的订单数据不变的问题,那就应该是重新启动还是不变。
2、即使第一个问题解决了,还是有问题,从订单的角度看,生成时的单价已经不存在了,没有历史可查,现在新单价表里已经是新数据没有老数据记录,如何证实旧订单上的价格是对的呢?从这个角度说,应该有修订记录,怎么实现就是你们的事情了。
:)

--  作者:有点蓝
--  发布时间:2018/10/26 12:04:00
--  
1、如果使用4的用法,重启后不会改数据,如果有就是您用法不正确。

2、这种是业务问题了,有很多方法可以解决,比如创建日志,创建历史表等等等。怎么实现就是你们的事情了