Foxtable(狐表)用户栏目专家坐堂 → [求助]代码 关联统计问题


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

主题:[求助]代码 关联统计问题

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
看到了~谢谢  发帖心情 Post By:2014/6/24 22:14:00 [只看该作者]

看到了~谢谢 代码很腻害 有很多没用过~

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
代码统计好像有点问题~  发帖心情 Post By:2014/6/28 12:18:00 [只看该作者]

我现在保存是不覆盖以前日期的~
只按品种分组 会把以前日期的配比列也给加进去 计算品种总数量会有问题
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

代码如下:
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("日期","品种")  但是不行 

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
问个表格变色问题~Drawcell事件  发帖心情 Post By:2014/7/6 22:13:00 [只看该作者]

麻烦问下这个什么问题~
我现在是想 装箱总斤数列 和 小计列 值不等的时候 小计列同样变颜色 
在Drawcell事件中同样加代码 代码如下:
If e.Col.Name = "小计" Then
    If e.Row("小计") > e.Row("装箱总斤数") OrElse e.Row("小计") < e.Row("装箱总斤数")  Then
        e.Style = "blue"
    End If
End If
但是不相等的时候 没效果!!旁边的是原来的 有效
图片点击可在新窗口打开查看此主题相关图片如下:71.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:72.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/6 22:16:00 [只看该作者]

 e.Table.DateTable.AddUserStyle 这一句也是要加上去的。

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
  发帖心情 Post By:2014/7/6 22:19:00 [只看该作者]

我最开始有加过了 Drawcell代码如下:
e.Table.DataTable.AddUserStyle("blue", Color.Blue , Color.black)

If e.Col.Name = "总数量" Then
    If e.Row("总数量") > e.Row("实际产量") Then
        e.Style = "blue"
    End If
End If
e.Table.DataTable.AddUserStyle("blue", Color.Blue , Color.black)
If e.Col.Name = "小计" Then
    If e.Row("小计") > e.Row("装箱总斤数") OrElse e.Row("小计") < e.Row("装箱总斤数")  Then
        e.Style = "blue"
    End If
End If
加了两遍都不行???
图片点击可在新窗口打开查看此主题相关图片如下:81.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
好像加过了~  发帖心情 Post By:2014/7/6 22:20:00 [只看该作者]

我最开始有加过了 Drawcell代码如下:
e.Table.DataTable.AddUserStyle("blue", Color.Blue , Color.black)

If e.Col.Name = "总数量" Then
    If e.Row("总数量") > e.Row("实际产量") Then
        e.Style = "blue"
    End If
End If
e.Table.DataTable.AddUserStyle("blue", Color.Blue , Color.black)
If e.Col.Name = "小计" Then
    If e.Row("小计") > e.Row("装箱总斤数") OrElse e.Row("小计") < e.Row("装箱总斤数")  Then
        e.Style = "blue"
    End If
End If
加了两遍都不行???
此主题相关图片如下:81.png
按此在新窗口浏览图片

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/6 22:21:00 [只看该作者]

 你的代码,要写在对应的表的表事件,比如,你应该写在表属性那里去。

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


加好友 发短信
等级:幼狐 帖子:184 积分:1148 威望:0 精华:0 注册:2014/6/10 20:24:00
哦哦~知道了  发帖心情 Post By:2014/7/6 22:28:00 [只看该作者]

哦哦~知道了 是我搞混了~写错表格了 谢谢

 回到顶部
总数 18 上一页 1 2