Foxtable(狐表)用户栏目专家坐堂 → 请教这种交叉组合统计该怎么做


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

主题:请教这种交叉组合统计该怎么做

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


加好友 发短信
等级:小狐 帖子:316 积分:2628 威望:0 精华:0 注册:2013/3/4 20:21:00
请教这种交叉组合统计该怎么做  发帖心情 Post By:2013/5/15 12:56:00 [只看该作者]

建了入库和出库2个表,分别的字段是:日期、出/入库单号、出/入库数量

想将2个表的数据按日期的顺序组合起来,显示哪天出了多少,入了多少,当天结余多少

想了一晚上,不会写代码,请高手相助

 


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

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

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


 


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


加好友 发短信
等级:小狐 帖子:316 积分:2628 威望:0 精华:0 注册:2013/3/4 20:21:00
  发帖心情 Post By:2013/5/15 12:57:00 [只看该作者]

这是文件

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:交叉统计.table


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


加好友 发短信
等级:狐神 帖子:4760 积分:34608 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2013/5/15 13:06:00 [只看该作者]

新建一个表
然后把出入库两个表的数据填充进去
按日期排序
再循环求值即可

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2013/5/15 15:06:00 [只看该作者]

Dim dt1,dt2 As fxDataSource
Dim dts As fxDataSource() ={dt1,dt2}
Dim v1 As String() = {"入库","出库"}
Dim jb As  SQLJoinTableBuilder
Dim s1,s2 As String
Dim n1 As Integer

For Each s1 In v1
    jb =new SQLJoinTableBuilder("查询",s1 & "表")
    jb.AddExp("日期", s1 & "日期")
    jb.AddExp(s1 & "单号", s1 & "单号")
    jb.AddExp(s1 & "数量", "数量")
    if n1= v1.length-1 then jb.AddExp("结余", "0.0")
    dts(n1) = jb.BuildDataSource()
    n1+=1
Next

s2 = "日期"
dts(0).Combine(s2,dts(1),s2)

dts(0).show("查询")
Dim t1 As Table =Tables("查询")

t1.StopRedraw
t1.sort = s2
For Each r As Row In t1.Rows
    If r.Index= 0 Then
        r("结余") = r("入库数量")-r("出库数量")
    Else
        r("结余") =t1(r.Index-1,"结余")+ r("入库数量")-r("出库数量")
    End If
Next
t1.ResumeRedraw

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


加好友 发短信
等级:小狐 帖子:316 积分:2628 威望:0 精华:0 注册:2013/3/4 20:21:00
  发帖心情 Post By:2013/5/15 15:37:00 [只看该作者]

以下是引用ybil在2013-5-15 15:06:00的发言:
Dim dt1,dt2 As fxDataSource
....
 
t1.ResumeRedraw

还真有神人相助

膜拜!!


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


加好友 发短信
等级:小狐 帖子:316 积分:2628 威望:0 精华:0 注册:2013/3/4 20:21:00
  发帖心情 Post By:2013/5/15 16:56:00 [只看该作者]

Dim dt1,dt2 As fxDataSource
Dim dts As fxDataSource() ={dt1,dt2}
Dim v1 As String() = {"入库","出库"}
Dim jb As SQLJoinTableBuilder
Dim s1,s2 As String
Dim n1 As Integer

For Each s1 In v1
jb =new SQLJoinTableBuilder("查询",s1 & "表")
jb.AddExp("日期", s1 & "日期")
jb.AddExp(s1 & "单号", s1 & "单号")
jb.AddExp(s1 & "数量", "数量")
-------------------------------------------------
红色部分怎么理解?
为何不直接写“出库表”,“入库表”
而是写“出库”“入库”,然后下面跟个“表”呢?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/5/15 16:59:00 [只看该作者]

那么你就代码冗余  要复制两段一样的代码. 没什么意义.  所以就这样写.

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2013/5/15 17:21:00 [只看该作者]

如考虑一日内有多笔出入库(同日出入单号相同),这样可能更好些:

Dim dt1,dt2 As fxDataSource
Dim dts As fxDataSource() ={dt1,dt2}
Dim v1 As String() = {"入库","出库"}
Dim g As  GroupTableBuilder
Dim s1,s2 As String
Dim n1 As Integer

For Each s1 In v1
    g =new GroupTableBuilder("查询",DataTables(s1 & "表"))
    g.Groups.AddDef(s1 & "日期",DateGroupEnum.None,"日期") '添加客户列用于分组
    g.Groups.AddDef(s1 & "单号") '添加产品列用于分组
    g.Totals.AddDef("数量",s1 & "数量") '添加数量列用于统计
    
    If n1= v1.length-1 Then g.Totals.AddDef("数量","结余")
    dts(n1) = g.BuildDataSource()
    n1+=1
Next


s2 = "日期"
dts(0).Combine(s2,dts(1),s2)

dts(0).show("查询")
Dim t1 As Table =Tables("查询")

t1.StopRedraw
t1.sort = s2
For Each r As Row In t1.Rows
    If r.Index= 0 Then
        r("结余") = r("入库数量")-r("出库数量")
    Else
        r("结余") =t1(r.Index-1,"结余")+ r("入库数量")-r("出库数量")
    End If
Next
t1.ResumeRedraw
MainTable = Tables("查询")

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


加好友 发短信
等级:小狐 帖子:316 积分:2628 威望:0 精华:0 注册:2013/3/4 20:21:00
  发帖心情 Post By:2013/5/16 9:53:00 [只看该作者]

昨晚照着代码做了一遍

这个代码有个地方要注意,在统计前,需将2个来源表保存,才能有正确的数据被统计出来


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


加好友 发短信
等级:小狐 帖子:316 积分:2628 威望:0 精华:0 注册:2013/3/4 20:21:00
  发帖心情 Post By:2013/5/19 15:45:00 [只看该作者]

刚把内部数据源重定向到外部ACCESS数据库,发现该代码不管用了

能教教当是外部数据源时,怎么写代码不?


 回到顶部
总数 15 1 2 下一页