Foxtable(狐表)用户栏目专家坐堂 → [求助]统计报表


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

主题:[求助]统计报表

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


加好友 发短信
等级:幼狐 帖子:87 积分:662 威望:0 精华:0 注册:2013/1/24 15:19:00
  发帖心情 Post By:2013/4/8 17:12:00 [只看该作者]

谢谢。我看了。那样的话我会做的。但我昨天见到你们给我的不是这样的,它带了单位了。使用代码写的。


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


加好友 发短信
等级:幼狐 帖子:87 积分:662 威望:0 精华:0 注册:2013/1/24 15:19:00
  发帖心情 Post By:2013/4/8 17:16:00 [只看该作者]

一般一家店的同一种商品是不太会出现3斤加2个的。通常是3斤或2个。实在困难也可以用合并好的“订单数量(带单位)”那一列就行了。看看老师有什么办法?

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/4/8 17:17:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/4/8 17:18:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:幼狐 帖子:87 积分:662 威望:0 精华:0 注册:2013/1/24 15:19:00
  发帖心情 Post By:2013/4/8 20:20:00 [只看该作者]

Dim dt As DataTable = DataTables("销售订单汇总总表")

Dim dtb As New DataTableBuilder("分货表")
dtb.AddDef("原料编码", Gettype(String), 32)
For Each col As String In dt.GetUniqueValues("", "单位简称")
    dtb.AddDef(col, Gettype(String), 8)
Next
dtb.Build()

Dim t As Table = Tables("分货表")
For Each ylbm As String In dt.GetUniqueValues("", "原料编码")
    Dim r As Row = t.AddNew
    r("原料编码") = ylbm
    For i As Integer = 1 To t.Cols.Count - 1
        Dim colName As String = t.Cols(i).Name
        Dim filter As String = "原料编码 = '" & r("原料编码") & "' And 单位简称 = '" & colName & "'"
        Dim data As String = ""
        For Each dw As String In dt.GetUniqueValues(filter, "订单单位")
            data &= dt.Compute("Sum(订单数量)", filter & " And 订单单位 = '" & dw & "'") & dw & "+"
        Next
        r(colName) = data.Trim("+")
    Next
Next

MainTable = t
麻烦林老师帮我看一下。上次您给我的上述代码。可能在8楼的表中要改一下。谢谢。上次的问题就是做这个数量与单位的合并。多谢了。

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


加好友 发短信
等级:幼狐 帖子:87 积分:662 威望:0 精华:0 注册:2013/1/24 15:19:00
  发帖心情 Post By:2013/4/9 8:14:00 [只看该作者]

不好意思。muhua老师。不好弄就写代码吧,我做成按钮吧。只是这样的话要价格日期选择,就是在执行这个按钮时弹出日期对话框选择时期作为条件。日期字段为“单据日期”,不给日期的话默认最近一天的单据日期。谢谢,给你添麻烦了。

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/4/9 9:25:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:幼狐 帖子:87 积分:662 威望:0 精华:0 注册:2013/1/24 15:19:00
  发帖心情 Post By:2013/4/9 14:12:00 [只看该作者]

Dim iii As Integer = 0

Dim dt As DataTable = DataTables("销售订单")

Dim dtb As New DataTableBuilder("分货表")

dtb.AddDef("原料编码", Gettype(String), 32)

For Each col As String In dt.GetUniqueValues("", "订货单位简称")

    dtb.AddDef(col, Gettype(String), 16)

Next

dtb.Build()

 

 

Dim t As Table = Tables("分货表")

MainTable = t

Dim icou As Integer = dt.GetUniqueValues("", "原料编码").Count

StatusBar.Message1= "正在统计"

StatusBar.ProgressBar.Visible = True

StatusBar.ProgressBar.Maximum = icou

 

For Each ylbm As String In dt.GetUniqueValues("", "原料编码")

    If ylbm > "" AndAlso CInt(ylbm) < icou + 1 Then

        Dim r As Row = t.AddNew

        r("原料编码") = ylbm

        For i As Integer = 1 To t.Cols.Count - 1

            Dim colName As String = t.Cols(i).Name

            Dim filter As String = "原料编码 = '" & r("原料编码") & "' And 订货单位简称 = '" & colName & "'"

            Dim data As String = ""

            For Each dw As String In dt.GetUniqueValues(filter, "基本单位")

                data &= dt.Compute("Sum(数量基本单位)", filter & " And 基本单位 = '" & dw & "'") & dw & "+"

            Next

            For Each dw As String In dt.GetUniqueValues(filter, "订货包装单位")

                data &= dt.Compute("Sum(数量包装单位)", filter & " And 订货包装单位 = '" & dw & "'") & dw & "+"

            Next

            r(colName) = data.Trim("+")

        Next

        iii = iii + 1

        StatusBar.ProgressBar.Value = iii

        StatusBar.Message2 = "正在处理第" & iii & "条数据"

        Application.DoEvents

    End If

Next

StatusBar.Message2 = "已经处理完毕,总共处理了" & iii & "条数据"

StatusBar.ProgressBar.Value = icou



muhua老师:我感觉我还是没完全说清楚。测试结果有些问题。

1,不想要“数量基本单位”与“基本单位”的合并。只想要“数量包装单位”的合计值与单位合并。由于订单的复杂性,同一家客户在订购同一商品时会使用不同的“订货包装单位”及3+2个,加上补订单,就会出现几行订单,分别是3斤,5斤,2个,5个,我要做的就是求得8+7个【(3+5)斤;(2+5)个】,用于分货。包装单位存在“订货包装单位”,该单位的数量存在“数量包装单位”

2,“数量基本单位(这是数量,如5)”与“基本单位(是标准单位,一般是斤)”是将这些不同的计量单位按照转换率转换为标准单位后的数量及其标准单位。由于转换率仅仅是参考值,只能用于采购的大致换算。分货是按照订单的计量单位合计数来分,在按计量为基本单位收钱。

3,感觉老师是把上述两个合并了。

4,分货表的纵坐标应该是“商品名称”,我用它替换“原料代码”再运行也不行,看来这个瓢不好画呀。由于客户是多个总公司(下有分公司),我想做成多个按钮,因此,这个分货表就需要加上总公司的选择条件。好像你先前给我的那个“公司一”“公司二”这样的选择。

5,分货组号与商品名称并列为纵坐标,它是商品的属性。







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


加好友 发短信
等级:幼狐 帖子:87 积分:662 威望:0 精华:0 注册:2013/1/24 15:19:00
  发帖心情 Post By:2013/4/9 14:12:00 [只看该作者]

订单表
单据日期商品名称商品简称数量包装单位包装单位总公司订货单位简称 
2013-4-9南瓜-长-眉南瓜-长11001店 
2013-4-9芋儿-眉芋儿21002店 
2013-4-9红椒-眉红椒31003店 
2013-4-9丝瓜-眉丝瓜41004店 
2013-4-9小柿子-眉小柿子51005店 
2013-4-9小葱-眉小葱61006店 
2013-4-9南瓜-长-眉南瓜-长11001店 
2013-4-9芋儿-眉芋儿21002店 
        
2013-4-9南瓜-长-西南瓜-长7102分公司1 
2013-4-9芋儿-西芋儿8102分公司2 
2013-4-9红椒-西红椒9102分公司3 
2013-4-9丝瓜-西丝瓜10102分公司4 
2013-4-9小柿子-西小柿子11102分公司5 
2013-4-9小葱-西小葱41102分公司6 
2013-4-9小柿子-西小柿子11102分公司5 
2013-4-9小葱-西小葱41102分公司6 
        
        



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


加好友 发短信
等级:幼狐 帖子:87 积分:662 威望:0 精华:0 注册:2013/1/24 15:19:00
  发帖心情 Post By:2013/4/9 14:13:00 [只看该作者]

分货表
100分货表商品简称分货组号1店2店3店4店5店6店
南瓜-长32个     
芋儿2 4包    
红椒1  3件   
丝瓜1   4桶  
小柿子4    5盆 
小葱4     6袋
         
  分货组号分公司1分公司2分公司3分公司4分公司5分公司6
102分货表南瓜-长97斤     
芋儿8 8斤    
红椒7  9斤   
丝瓜7   10斤  
小柿子6    11斤+11个 
小葱6     41斤+41个


我感觉这个案例不错,请老师帮完善一下。

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