Foxtable(狐表)用户栏目专家坐堂 → 关于DataColChange事件引发的一点疑问


  共有1820人关注过本帖树形打印复制链接

主题:关于DataColChange事件引发的一点疑问

帅哥哟,离线,有人找我吗?
zhy400137
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1133 积分:8227 威望:0 精华:0 注册:2013/11/3 19:00:00
关于DataColChange事件引发的一点疑问  发帖心情 Post By:2016/12/13 9:56:00 [只看该作者]

Select Case e.DataCol.name
    Case "产品编号"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = '" & e.OldValue & "'")
        
If dr Is Nothing Then 
            dr = DataTables(
"
库存").AddNew()
            dr(
"
产品编号") = e.DataRow("产品编号")
            dr(
"
产品名称") = e.DataRow("产品名称")
            dr(
"
产品规格") = e.DataRow("产品规格")
        Else
            dr(
"
产品编号") = e.DataRow("产品编号")
        End If
    Case 
"
产品名称","产品规格"
        Dim dr As DataRow = DataTables(
"
库存").Find("产品编号 = '" & e.DataRow("产品编号") & "'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        
End If
End
 Select
以上是帮助中关于非关联表联动的一段内容,但是否少写了主表行和子表行要SAVE的代码,不然是否会存在
主表改后,没保存但库存表的内容已变化,导致的数据不一致,此时是否要
dr.save
e.datarow.save

 回到顶部
帅哥哟,离线,有人找我吗?
zhy400137
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1133 积分:8227 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2016/12/13 10:08:00 [只看该作者]

由此我还有一个困扰很久的疑问,窗口表中加载数据 代码Datatables("表").load()中的False参数是要好还是不要好,
1、不要的情况:Load()
表中输入的数据,我没有点保存按钮,但重新打开窗口,没有保存的数据仍然存在,这样如果此行的要验证非空的数据,
即有些数据不输入不允许保存的时候,就有点矛盾。


2、要的情况:Load(False)
如果存在 在DataColChanged事件中进行两表联动,主表更改数据,子表也同时更改,但主表因某种原因没保存,子表在DataColChanged
中做了SAVE,那两表会出现不一致的情况。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/13 10:11:00 [只看该作者]

这个是操作逻辑的问题了,理论上当然都要保存数据的。

至于是不是要自动保存根据自己的需要了,加上这2句代码就变成了自动保存,有些人可能不喜欢这样。

 回到顶部
帅哥哟,离线,有人找我吗?
zhy400137
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1133 积分:8227 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2016/12/13 10:34:00 [只看该作者]

那如果不自动保存的话,是否要在主表的保存按钮中,写入主子表同时保存的代码?就是要
Datatables("主表").save
Datatables("子表").save

?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/13 10:55:00 [只看该作者]

既然要父子表进行同步,当然要同时保存。

逻辑都是自己控制的,既然之前的逻辑不符合要求,那就改为符合自己要求的用法。

既然要加载,当然要考虑修改的数据应该什么处理,做了一半,不想丢掉,那就只能暂停加载,等编辑完毕保存了再说。不然就全部回滚之前的更改。都是要靠自己的代码来控制的

 回到顶部
帅哥哟,离线,有人找我吗?
zhy400137
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1133 积分:8227 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2016/12/13 13:22:00 [只看该作者]

我自己再体会下,谢谢!

 回到顶部