以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请老师帮忙:DataColChanged先保存再自动更新的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=76381) |
-- 作者:xianzheng -- 发布时间:2015/10/28 1:05:00 -- 请老师帮忙:DataColChanged先保存再自动更新的问题 老师,在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 -- 发布时间:2015/10/28 8:44:00 -- 在DataColChanged事件中记录所有被修改的行,然后在保存按钮事件中,根据所有被修改的行更改明细表的数据 |
-- 作者:狐狸爸爸 -- 发布时间:2015/10/28 9:05:00 -- 其实现在这样最好啊,虽然更新了,但直道你保存,这些更新才会生效,有什么不对吗? |
-- 作者:大红袍 -- 发布时间:2015/10/28 9:10:00 -- 在代码里加一句保存的代码不就行了?
e.DataRow.Save |
-- 作者:xianzheng -- 发布时间:2015/10/28 9:21:00 -- 老师,我这些代码就是在DataColChanged事件中的,出现最大问题是我在录当前表(基本资料)时,有时发现某个单元格录错了但没有保存之前先删除错的重新录,然后把正确的保存,发现“资料明细”表(自动的)把错的自动保存一行错的,正确的保存一行,要解决的问题是错的信息不应自动保存 |
-- 作者:xianzheng -- 发布时间: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
|
-- 作者:大红袍 -- 发布时间:2015/10/28 9:30:00 -- 直接写
e.DataRow.Save |
-- 作者:xianzheng -- 发布时间:2015/10/28 9:33:00 -- 是放在最后吗 |
-- 作者:大红袍 -- 发布时间:2015/10/28 9:34:00 -- 最前面,单独写 |
-- 作者:xianzheng -- 发布时间:2015/10/28 9:39:00 -- 可以了,有老师指点真好!谢谢! |