以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何在表的DataColChanged属性设置值变动后台的数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=139793)

--  作者:scofields
--  发布时间:2019/8/21 19:39:00
--  如何在表的DataColChanged属性设置值变动后台的数据
 老师,在工作中经常遇到因数据录入错误而需要修改数据,以下代码当修改了数据,点击重置列后,只对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



--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2019/8/22 11:12:00
--  
 狐爸,帮忙搞一个Update的语句。
--  作者:有点蓝
--  发布时间:2019/8/22 11:27:00
--  
Update什么?http://www.foxtable.com/webhelp/topics/0690.htm