以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 跨表统计的代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4153) |
-- 作者:floor2 -- 发布时间:2009/8/31 22:05:00 -- 跨表统计的代码 这是跨表计算的代码: Dim dr1 As DataRow = e.DataRow Dim dr2 As DataRow If e.DataCol.Name = "客户" Then Dim Sum As Double if e.datarow("生产进度")="已计划" then Sum = DataTables("生产清单").Compute("Sum(重量)","[客户] = \'" & dr1("客户") & "\'And [颜色编号]=\'" & dr1("颜色编号") & "\'And [幅宽] = " & dr1("幅宽") & "And [克重] = \'" & dr1("克重") & "\'") e.DataRow("生产数量") = Sum end if End If 自动更新的代码 if e.datacol.name="重量" then dim dr as datarow=e.datarow dim dr1 as datarow dim dr2 as datarow Dim s1 As String = "[克重] = " & dr("克重") & " And [颜色编号] = \'" & dr("颜色编号") & "\' And [客户] = \'" & dr("客户") & "\' And [幅宽] = " & dr("幅宽") dr1=datatables("订单管理").find(s1) dr2=datatables("订单管理").find("[生产进度]=\'" & "已计划\'" & " or [生产进度]=\'" & "生产中\'" & " or [生产进度]=\'" & "发货中\'" ) if dr1 isnot nothing and dr2 isnot nothing then datatables("订单管理").datacols("客户").RaiseDataColChanged(dr1) end if end if 下午查了一下午,都要抓狂了,请版主看下哪里有问题,谢谢 [此贴子已经被作者于2009-8-31 22:43:32编辑过]
|
-- 作者:czy -- 发布时间:2009/8/31 22:42:00 -- 第一段我想是不是这样? Dim dr1 As DataRow = e.DataRow If e.DataCol.Name = "客户" Then if dr1("生产进度")="已计划" then dr1("生产数量") = DataTables("生产清单").Compute("Sum(重量)","[客户] = \'" & dr1("客户") & "\'And [颜色编号]=\'" & dr1("颜色编号") & "\'And [幅宽] = " & dr1("幅宽") & "And [克重] = \'" & dr1("克重") & "\'") end if End If |
-- 作者:czy -- 发布时间:2009/8/31 22:50:00 -- 这段是不是这样? dr2=datatables("订单管理").find("[生产进度]= \'已计划\' or [生产进度]=\'生产中\' or [生产进度]=\'发货中\'") |
-- 作者:floor2 -- 发布时间:2009/9/1 9:30:00 -- 现在都不知道哪里有问题,代进去还是无法解决问题, if e.datacol.name="重量" then dim dr as datarow=e.datarow dim dr1 as datarow dim dr2 as datarow dr1=datatables("订单管理").find("[克重] = \'" & dr("克重") & "\' And [颜色编号] = \'" & dr("颜色编号") & "\' And [客户] = \'" & dr("客户") & "\' And [幅宽] = \'" & dr("幅宽") & "\'" ) if dr1 isnot nothing then datatables("订单管理").datacols("客户").RaiseDataColChanged(dr1) end if end if 这样的代码也有错,哪里有错? |
-- 作者:狐狸爸爸 -- 发布时间:2009/9/1 9:35:00 -- 提示什么错啊? |
-- 作者:floor2 -- 发布时间:2009/9/1 9:37:00 -- 未将对象引用设置到对象的实例 |
-- 作者:狐狸爸爸 -- 发布时间:2009/9/1 9:40:00 -- 看清楚提示错误的位置. 说不定是订单管理表的DataColChanged有问题 |
-- 作者:floor2 -- 发布时间:2009/9/1 10:09:00 -- 是订单管理表的 Dim dr1 As DataRow = e.DataRow If e.DataCol.Name = "客户" Then if e.datarow("生产进度")="已计划" or e.datarow("生产进度")="生产中" or e.datarow("生产进度")="待发货" then e.DataRow("生产数量")=0 e.DataRow("生产数量")= DataTables("生产清单").Compute("sum(重量)","[客户] = \'" & dr1("客户") & "\'And [颜色编号]=\'" & dr1("颜色编号") & "\'And [幅宽] = " & dr1("幅宽") & "And [克重] = \'" & dr1("克重") & "\'") end if End If 这个是订单表管理的代码 |
-- 作者:狐狸爸爸 -- 发布时间:2009/9/1 10:20:00 -- 没有看出问题了,用个简单的例子说明。 另外代码中既然定义了dr1引用e.Datarow,那么应改这样: Dim dr1 As DataRow = e.DataRow If e.DataCol.Name = "客户" Then if dr1("生产进度")="已计划" orelse dr1("生产进度")="生产中" orelse dr1("生产进度")="待发货" then dr1("生产数量")=0 dr1("生产数量")= DataTables("生产清单").Compute("sum(重量)","[客户] = \'" & dr1("客户") & "\'And [颜色编号]=\'" & dr1("颜色编号") & "\'And [幅宽] = " & dr1("幅宽") & "And [克重] = \'" & dr1("克重") & "\'") end if End If |
-- 作者:floor2 -- 发布时间:2009/9/1 10:42:00 -- 郁闷啊。。。。 该怎么办?生产清单里的重量改变 就会弹出错误窗口。。。。未将对象引用设置到对象的实例 |