Foxtable(狐表)用户栏目专家坐堂 → 如何在表的DataColChanged属性设置值变动后台的数据


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

主题:如何在表的DataColChanged属性设置值变动后台的数据

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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
如何在表的DataColChanged属性设置值变动后台的数据  发帖心情 Post By:2019/8/21 19:39:00 [只看该作者]

 老师,在工作中经常遇到因数据录入错误而需要修改数据,以下代码当修改了数据,点击重置列后,只对Tables有效,对DataTables无效,未加载的行中的月累计、年累计仍然没有变化。例如:修改了2019年8月15日的“本期碎石日销量”,修改行的月累计、年累计发生了变化,但未加载的2019年8月15日后的月累计、年累计缺不发生变化,能够将以下代码改成修改了某行数据,后台数据也跟着一起变化。

Dim cnt1 As Double '定义cnt(...)为双精度小数类型
Dim cnt2 As Double
Dim cnt3 As Double
Dim cnt4 As Double
Dim y As Integer = Date.Today.Year '取Y为今年
Dim m As Integer = Date.Today.Month '取M为当月
Dim d As Integer = Date.Today.Day '取D为当日
Dim dt1 As New Date(y, m, 1)  '获取本月第一天
Dim dt2 As New Date(y, m, d) 'Date.DaysInMonth(y, d))'获取本月第几天
Dim dt3 As New Date(y, 1, 1)
Select Case e.DataCol.Name
    Case "本期碎石日销量"
       If e.DataRow.IsNull("本期碎石日销量") Then '
        e.DataRow("本期碎石日销量")  = Nothing '
    Else
cnt1 = DataTables("日报").S QLCompute("sum(本期碎石日销量)", "报表日期 >= '" & dt1 & "' And 报表日期<='" & dt2 & "' And 区域 = '" & e.DataRow("区域") & " '")
cnt2 = DataTables("日报").S QLCompute("sum(本期碎石日销量)", "报表日期 >= '" & dt3 & "' And 报表日期<='" & dt2 & "'And 区域 = '" & e.DataRow("区域") & " ' ")
e.DataRow("本期碎石月累计") = cnt1+ e.DataRow("本期碎石日销量")
e.DataRow("本期碎石年累计") = cnt2+ e.DataRow("本期碎石日销量")
    End If
    Case "本期河沙日销量"
        If e.DataRow.IsNull("本期河沙日销量") Then '
        e.DataRow("本期河沙日销量")  = Nothing '
    Else
    cnt3 = DataTables("日报").S QLCompute("sum(本期河沙日销量)", "报表日期 >= '" & dt1 & "' And 报表日期<='" & dt2 & "'And 区域 = '" & e.DataRow("区域") & " ' ")
    cnt4 = DataTables("日报").S QLCompute("sum(本期河沙日销量)", "报表日期 >= '" & dt3 & "' And 报表日期<='" & dt2 & "'And 区域 = '" & e.DataRow("区域") & " ' ")
    e.DataRow("本期河沙月累计") = cnt3+ e.DataRow("本期河沙日销量")
    e.DataRow("本期河沙年累计") = cnt4+ e.DataRow("本期河沙日销量")
End select



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


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

DataColChanged事件只对已经加载的数据有效,也就是对DataTable中的数据有效,对于没有加载的数据,是无效的。

对于后天数据更新,可以参考:
http://www.foxtable.com/webhelp/topics/2898.htm
http://www.foxtable.com/webhelp/topics/2901.htm

或自己写update语句

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


加好友 发短信
等级:二尾狐 帖子:564 积分:4561 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2019/8/22 11:12:00 [只看该作者]

 狐爸,帮忙搞一个Update的语句。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110787 积分:563867 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/22 11:27:00 [只看该作者]


 回到顶部