以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]开一个帖请教问题~ (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=53677) |
||||
-- 作者:good131577 -- 发布时间:2014/7/13 10:40:00 -- [求助]开一个帖请教问题~ 当天装配表控制代码生成~ 然后我想昨天品种和昨天配比 显示该用户昨天的配比情况 前天品种和前天配比列显示 前天该用户的配比情况~ (从装配表里面读出来对应的历史配比记录) 其中自动生成装箱配比 代码如下(有点甜大哥帮忙解决的 自己有点小调整): Tables("装配表").DataTable.DeleteFor(" [日期] = \'" & e.Form.Controls("DateTimePicker1").Value & "\'") Tables("装配表").Filter=" [日期] = \'" & e.Form.Controls("DateTimePicker1").Value & "\'" SystemReady = False Dim n As Integer=0 Dim drs As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & e.Sender.Text & "#") For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & e.Sender.Text & "#") \'统计是否满足装箱总斤数 n=0 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 n=n+1 If n<=5 Then ndr("喜好")="吃" ndr("配比") = 1 Else ndr("喜好")="不吃" 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, "总数量") \'对数量进行统计 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 如果我要昨天品种和昨天配比 显示该用户昨天的配比情况 前天品种和前天配比列显示 前天该用户的配比情况 怎么在这个里面加代码读取实现呢?求大神指点下 不知道如何下手
![]() ![]() ![]() ![]() |
||||
-- 作者:good131577 -- 发布时间:2014/7/13 10:42:00 -- 代码工程上传下~ foxtable开发版的 大神麻烦看下~ 求指导
|
||||
-- 作者:有点甜 -- 发布时间:2014/7/13 11:51:00 -- 代码
Tables("装配表").DataTable.DeleteFor(" [日期] = \'" & e.Form.Controls("DateTimePicker1").Value & "\'") Dim d As Date = e.Sender.Text Dim drs As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d & "#") SystemReady = True Dim t As Table = Forms("装配窗体").Controls("Table1").Table |
||||
-- 作者:good131577 -- 发布时间:2014/7/13 12:19:00 -- [求助]试了下~ 我试验了下~ 结果是这样的 昨天和前天 茄子的品种和配比 ![]() ![]() 没有显示?好像漏掉了最后一个品种 |
||||
-- 作者:有点甜 -- 发布时间:2014/7/13 12:26:00 -- 把 If idx < drs_by.Count - 1 Then
改成 If idx < drs_by.Count Then |
||||
-- 作者:good131577 -- 发布时间:2014/7/13 13:17:00 -- 了解~非常感谢 大神级别 ![]() |
||||
-- 作者:good131577 -- 发布时间:2014/7/14 20:49:00 -- 请教个问题~ 我现在这段代码 是写在日期控件的 TextChanged事件当中的 每次一打开那个窗口就会自动产生当天装配的表格 (这个不太对~) 要没有当天的记录 才会产生才对 如果已经产生了 已经就不用在产生了: 代码如下: 我是想判断表格是不是空 但这样写 提示代码有错 Tables("装配表").Filter=" [日期] = \'" & e.Form.Controls("DateTimePicker1").Value & "\'" \'判断是有已经有装配表 有则不再产生装配表 If Tables("装配表") !=null Then SystemReady = False Dim n,n1,n2 As Integer Dim d As Date = e.Sender.Text Dim drs As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d & "#") Dim drs_y As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d.AddDays(-1) & "#") Dim drs_by As List(Of DataRow) = DataTables("蔬菜采收表").Select("日期 = #" & d.AddDays(-2) & "#") For Each dr As DataRow In DataTables("当天配送会员").Select("日期 = #" & d & "#") \'统计是否满足装箱总斤数 n=0 n1=0 n2=0 Dim idx As Integer = 0 For Each cdr As DataRow In drs Dim ndr As DataRow = DataTables("装配表").addnew If idx < drs_y.Count Then ndr("昨天品种") = drs_y(idx)("品种") Dim fdr_y As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = \'" & dr("会员编号") & "\' and 产品 = \'" & drs_y(idx)("品种") & "\'") If fdr_y IsNot Nothing Then If fdr_y("喜好") = "吃" Then ndr("昨天配比") = 1 ElseIf fdr_y("喜好") = "爱吃" Then ndr("昨天配比") = 2 Else ndr("昨天配比") = 0 End If \'没有找到记录 \' Else n1=n1+1 If n1<=5 Then ndr("昨天配比") = 1 Else ndr("昨天配比") = 0 End If End If End If If idx < drs_by.Count Then ndr("前天品种") = drs_by(idx)("品种") Dim fdr_by As DataRow = DataTables("蔬菜喜好表").Find("会员编号 = \'" & dr("会员编号") & "\' and 产品 = \'" & drs_by(idx)("品种") & "\'") If fdr_by IsNot Nothing Then If fdr_by("喜好") = "吃" Then ndr("前天配比") = 1 ElseIf fdr_by("喜好") = "爱吃" Then ndr("前天配比") = 2 Else ndr("前天配比") = 0 End If \'没有找到记录 \' Else n2=n2+1 If n2<=5 Then ndr("前天配比") = 1 Else ndr("前天配比") = 0 End If End If End If 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 n=n+1 \'配比超过5斤 If n<=5 Then ndr("喜好")="吃" ndr("配比") = 1 Else ndr("喜好")="吃" ndr("配比") = 0 End If End If idx += 1 Next Next For Each dr As DataRow In DataTables("装配表").Select("日期 = #" & d & "#") dr("小计") = DataTables("装配表").compute("sum(配比)", "日期 = #" & dr("日期") & "# and 会员编号 = \'" & dr("会员编号") & "\'") dr("装箱参考")=dr("配比") Next SystemReady = True End If 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 = "日期 = #" & d & "#" t.DataSource = b.BuildDataSource \'生成统计表 t.DataTable.DataCols.Add("实际产量", Gettype(Integer)) For Each r As Row In t.Rows Dim fdr As DataRow = DataTables("蔬菜采收表").Find("日期 = #" & d & "# And 品种 = \'" & r("品种") & "\'") If fdr IsNot Nothing Then r("实际产量") = fdr("实际产量") End If Next 这个怎么写呢?
|
||||
-- 作者:有点甜 -- 发布时间:2014/7/14 20:58:00 -- Dim d As Date = e.Sender.Text
|
||||
-- 作者:good131577 -- 发布时间:2014/7/14 21:18:00 -- 麻烦 还有个问题~ 能不能用代码控制客户 配比列累加值小计等于该会员的装箱斤数 后面的配比就为0 不在为1了~ 比如7195客户 7个品种是都吃的~喜好表中是吃 装箱值是1 配比的值是拷贝的装箱列的值 就是都为1 能不能实现前五种累加小计值已经为5了 等于该客户的装箱斤数 则后面的两个品种茄子苦瓜配比都设置为0
|
||||
-- 作者:有点甜 -- 发布时间:2014/7/14 21:26:00 -- Dim d As Date = e.Sender.Text
|