Foxtable(狐表)用户栏目专家坐堂 → 请老师帮忙:DataColChanged先保存再自动更新的问题


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

主题:请老师帮忙:DataColChanged先保存再自动更新的问题

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


加好友 发短信
等级:小狐 帖子:356 积分:2314 威望:0 精华:0 注册:2014/10/4 9:38:00
请老师帮忙:DataColChanged先保存再自动更新的问题  发帖心情 Post By:2015/10/28 1:05:00 [只看该作者]

老师,在DataColChanged,当前表(“基本资料”)发生变化时,"资料明细"表数据自动更新;我想改为当前表(“基本资料”)保存后"资料明细"表再数据自动更新,下面的代码如何改?
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("区域")
            dr("名称") = e.DataRow("名称")
            dr("纳税人类型") = e.DataRow("纳税人类型")
            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


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/10/28 8:44:00 [只看该作者]

在DataColChanged事件中记录所有被修改的行,然后在保存按钮事件中,根据所有被修改的行更改明细表的数据

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/10/28 9:05:00 [只看该作者]

其实现在这样最好啊,虽然更新了,但直道你保存,这些更新才会生效,有什么不对吗?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 9:10:00 [只看该作者]

在代码里加一句保存的代码不就行了?

 

e.DataRow.Save


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


加好友 发短信
等级:小狐 帖子:356 积分:2314 威望:0 精华:0 注册:2014/10/4 9:38:00
  发帖心情 Post By:2015/10/28 9:21:00 [只看该作者]

老师,我这些代码就是在DataColChanged事件中的,出现最大问题是我在录当前表(基本资料)时,有时发现某个单元格录错了但没有保存之前先删除错的重新录,然后把正确的保存,发现“资料明细”表(自动的)把错的自动保存一行错的,正确的保存一行,要解决的问题是错的信息不应自动保存

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


加好友 发短信
等级:小狐 帖子:356 积分:2314 威望:0 精华:0 注册:2014/10/4 9:38:00
  发帖心情 Post By:2015/10/28 9:29:00 [只看该作者]

我想这样做但错的
If e.DataRow.Save=True Then
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("区域")
            dr("名称") = e.DataRow("名称")
            dr("纳税人类型") = e.DataRow("纳税人类型")
            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
end if

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 9:30:00 [只看该作者]

直接写

 

e.DataRow.Save


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


加好友 发短信
等级:小狐 帖子:356 积分:2314 威望:0 精华:0 注册:2014/10/4 9:38:00
  发帖心情 Post By:2015/10/28 9:33:00 [只看该作者]

是放在最后吗

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/10/28 9:34:00 [只看该作者]

最前面,单独写


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


加好友 发短信
等级:小狐 帖子:356 积分:2314 威望:0 精华:0 注册:2014/10/4 9:38:00
  发帖心情 Post By:2015/10/28 9:39:00 [只看该作者]

可以了,有老师指点真好!谢谢!

 回到顶部