以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]统计计算问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=53073) |
||||
-- 作者:good131577 -- 发布时间:2014/6/28 20:55:00 -- [求助]统计计算问题 此主题相关图片如下:1.png 此主题相关图片如下:2.png |
||||
-- 作者:good131577 -- 发布时间:2014/6/28 20:55:00 -- 开发版用户新手求助 我右边表格总数量列 应该是要 对应日期 统计累加左边装配表的每种品种 配比列的值 比如上海青 左边7012配比1 7013配比1 7014配比1 7015配比0 总数量应为3 但我还有其他日期 有2014-06-26 2014-06-28的 只是由产品分组 所以也会把其他日期的品种配比累加进去 所以计算会有误 请教下大神们怎么改? 实现代码如下: Tables("装配表").DataTable.DeleteFor(" [日期] = \'" & e.Form.Controls("DateTimePicker1").Value & "\'") Tables("装配表").Filter=" [日期] = \'" & e.Form.Controls("DateTimePicker1").Value & "\'" SystemReady = False Dim drs As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & e.Sender.Text & "#") For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & e.Sender.Text & "#") For Each cdr As DataRow In drs Dim ndr As DataRow = DataTables("装配表").addnew ndr("日期") = dr("日期") ndr("会员编号") = dr("会员编号") ndr("品种") = cdr("品种") ndr("装箱总斤数")=dr("装箱斤数") Dim fdr As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = \'" & dr("会员编号") & "\' and 产品 = \'" & cdr("品种") & "\'") If fdr IsNot Nothing Then ndr("喜好") = fdr("喜好") If fdr("喜好") = "吃" OrElse fdr("喜好") = "爱吃" Then ndr("配比") = 1 Else ndr("配比") = 0 End If End If Next Next For Each dr As DataRow In DataTables("装配表").Select("日期 = #" & e.Sender.Text & "#") dr("小计") = DataTables("装配表").compute("sum(配比)", "日期 = #" & dr("日期") & "# and 会员编号 = \'" & dr("会员编号") & "\'") dr("装箱参考")=dr("配比") Next SystemReady = True Dim t As Table = Forms("装配窗体").Controls("Table1").Table Dim b As New GroupTableBuilder("统计表1", DataTables("装配表")) b.Groups.AddDef("品种") \'根据产品分组 b.Totals.AddDef("配比", AggregateEnum.Sum, "总数量") \'对数量进型臣? t.DataSource = b.BuildDataSource \'生成统计表 t.DataTable.DataCols.Add("实际产量", Gettype(Integer)) For Each r As Row In t.Rows Dim fdr As DataRow = DataTables("蔬菜采收表").Find("日期 = #" & e.Sender.Text & "# And 品种 = \'" & r("品种") & "\'") If fdr IsNot Nothing Then r("实际产量") = fdr("实际产量") End If Next 我尝试改成 b.Groups.AddDef("日期","品种") 但是不行
|
||||
-- 作者:有点甜 -- 发布时间:2014/6/29 9:23:00 -- 什么意思? 把你的项目上传上来看看。 [此贴子已经被作者于2014-6-29 9:23:25编辑过]
|
||||
-- 作者:good131577 -- 发布时间:2014/6/29 13:50:00 -- 计算每种品种 总数量有点问题 就是计算 每种品种 总数量的值 有点问题 我现在装配表里面除了记录当天的数据 还有保存以前日期的数据 因为 统计 每种品种的总数量列 只按用户分组 没有管日期~ 所以以前日期的也会累加进去 导致总数量值 有误
|
||||
-- 作者:good131577 -- 发布时间:2014/6/29 13:50:00 -- 代码我也打包上传了 有点甜大哥 麻烦看下怎么改?
|
||||
-- 作者:有点甜 -- 发布时间:2014/6/29 14:16:00 --
|
||||
-- 作者:good131577 -- 发布时间:2014/6/29 15:09:00 -- 可以了 谢谢~ 是加了 b.Filter = "日期 = #" & e.Sender.Text & "#" 这句代码吧 我之前是想 b.Groups.AddDef("品种","日期") \'根据产品和日期 分组 再 b.Totals.AddDef("配比", AggregateEnum.Sum, "总数量") 对数量进行统计 这样好像就不行~运行只会出一个统计数字
|
||||
-- 作者:good131577 -- 发布时间:2014/7/11 22:30:00 -- [求助]配比列生产要控制 有点甜大哥,请教个问题~ 在左边表格中 7016客户在蔬菜喜好表中是没有他的记录的 那我们默认是他什么都吃~每种蔬菜品种装箱参考为1 配比是复制的装箱参考的值 然后小计是统计每个客户对应 配比的累加值。 现在要求是只需要给他配5斤就好(也就是对应的装箱总斤数那一列的值)超过5斤了后面的就装箱参考和配比值 就为0 例如:7016 上海青 1 苦瓜 1 丝瓜1 西红柿1 黄瓜1 累加起来为5了 ~那后面的木耳 茄子装箱参考 配比就都为0 这个用代码怎么写? |
||||
-- 作者:good131577 -- 发布时间:2014/7/11 22:40:00 -- [求助]源码我也上传下~ 有点甜大哥有空麻烦看下~ Tables("装配表").DataTable.DeleteFor(" [日期] = \'" & e.Form.Controls("DateTimePicker1").Value & "\'") Tables("装配表").Filter=" [日期] = \'" & e.Form.Controls("DateTimePicker1").Value & "\'" SystemReady = False Dim drs As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & e.Sender.Text & "#") For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & e.Sender.Text & "#") For Each cdr As DataRow In drs Dim ndr As DataRow = DataTables("装配表").addnew ndr("日期") = dr("日期") ndr("会员编号") = dr("会员编号") ndr("品种") = cdr("品种") ndr("装箱总斤数")=dr("装箱斤数") Dim fdr As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = \'" & dr("会员编号") & "\' and 产品 = \'" & cdr("品种") & "\'") If fdr IsNot Nothing Then ndr("喜好") = fdr("喜好") If fdr("喜好") = "吃" Then ndr("配比") = 1 ElseIf fdr("喜好") = "爱吃" Then ndr("配比") = 2 Else ndr("配比") = 0 End If Else ndr("喜好")="吃" ndr("配比") = 1 End If Next Next For Each dr As DataRow In DataTables("装配表").Select("日期 = #" & e.Sender.Text & "#") dr("小计") = DataTables("装配表").compute("sum(配比)", "日期 = #" & dr("日期") & "# and 会员编号 = \'" & dr("会员编号") & "\'") dr("装箱参考")=dr("配比") Next SystemReady = True Dim t As Table = Forms("装配窗体").Controls("Table1").Table Dim b As New GroupTableBuilder("统计表1", DataTables("装配表")) b.Groups.AddDef("品种") \'根据产品分组 b.Totals.AddDef("配比", AggregateEnum.Sum, "总数量") \'对数量进行统计 b.Filter = "日期 = #" & e.Sender.Text & "#" t.DataSource = b.BuildDataSource \'生成统计表 t.DataTable.DataCols.Add("实际产量", Gettype(Integer)) For Each r As Row In t.Rows Dim fdr As DataRow = DataTables("蔬菜采收表").Find("日期 = #" & e.Sender.Text & "# And 品种 = \'" & r("品种") & "\'") If fdr IsNot Nothing Then r("实际产量") = fdr("实际产量") End If Next 然后就是打印按钮导出的表格 可以有颜色区分开每个客户吗 如图所示? 这个要求实现~
|