Foxtable(狐表)用户栏目专家坐堂 → 在交叉统计设置中复制代码 不能直接使用吗?


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

主题:在交叉统计设置中复制代码 不能直接使用吗?

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


加好友 发短信
等级:幼狐 帖子:118 积分:1161 威望:0 精华:0 注册:2013/9/9 14:34:00
  发帖心情 Post By:2017/10/16 11:03:00 [只看该作者]

就是怎么插入代码 进行多表之前的计算 我现在有两个表 在上面的附件里面 想通过库存表的领取人计算领取数量 登记表计算使用数量 相减计算剩余数量 未使用、报废、返厂单独计算

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


加好友 发短信
等级:幼狐 帖子:118 积分:1161 威望:0 精华:0 注册:2013/9/9 14:34:00
  发帖心情 Post By:2017/10/16 11:11:00 [只看该作者]

我现在没搞懂 如何加入代码 现在想通过两个表来计算数据 用库存表的领取人计算领取数量,对照登记表的设备ID计算该领取人的使用数量,根据领取数量和使用数量相减得出剩余数量。然后未领取,报废,返修A厂如截图前置单独显示即可

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


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


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


加好友 发短信
等级:幼狐 帖子:118 积分:1161 威望:0 精华:0 注册:2013/9/9 14:34:00
  发帖心情 Post By:2017/10/17 13:05:00 [只看该作者]

如何 新建日期列 只统计 同月的数据?
图片点击可在新窗口打开查看此主题相关图片如下:6m_zrh@wsd7s`4mrxs%eeq.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/10/17 13:05:08编辑过]

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


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

 具体例子发生上来。


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


加好友 发短信
等级:幼狐 帖子:118 积分:1161 威望:0 精华:0 注册:2013/9/9 14:34:00
  发帖心情 Post By:2017/10/18 15:05:00 [只看该作者]

除了上面的 日期 我还想要计算使用的数量 使用的数量是登记表里面的 设备ID所对应的领取人 这块应该如何操作?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计演示.table


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


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

计算这样算。没看懂你使用数量怎么计算怎么显示,请举例说明。
 
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("日期", Gettype(String))
Dim str As String = "未领取,报废,返修A厂"
Dim prds As List(of String) = DataTables("订单").GetValues("领取人", "领取人 not in ('" & str.replace(",", "','") & "')")
prds.Insert(0, "返修A厂")
prds.Insert(0, "报废")
prds.Insert(0, "未领取")
For Each prd As String In prds
    dtb.AddDef(prd & "_领取数量", Gettype(Integer))
    dtb.AddDef(prd & "_使用数量", Gettype(Integer))
    dtb.AddDef(prd & "_剩余数量", Gettype(Integer))
Next
dtb.Build()
For Each cus As String In DataTables("订单").sqlGetValues("format(日期,'yyyy年MM月')")
    Dim dr As DataRow = DataTables("统计").AddNew()
    dr("日期") = cus
    Dim d As Date = new Date(cus.Substring(0,4), cus.SubString(5,2), 1)
    Dim filter As String = "日期 >= #" & d & "# and 日期 < #" & d.addMonths(1) & "#"
    For Each prd As String In prds
        Dim dt As DataTable =DataTables("登记表")
        dr(prd & "_领取数量") = DataTables("订单").Compute("Count(领取人)",filter & " And [领取人] = '" & prd & "'")
    Next
Next
MainTable= Tables("统计")

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


加好友 发短信
等级:幼狐 帖子:118 积分:1161 威望:0 精华:0 注册:2013/9/9 14:34:00
  发帖心情 Post By:2017/10/18 15:54:00 [只看该作者]

使用数量 就是通过"登记表"中的"产品ID号"在"订单"进行核对是否存在,如果存在那就算对应的领取人使用了 记数1个 报表中显示 日期内 该领取人有多少的产品ID号 在登记表中登记了 产品ID号是唯一值 不会重复

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


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

Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("日期", Gettype(String))
Dim str As String = "未领取,报废,返修A厂"
Dim prds As List(of String) = DataTables("订单").GetValues("领取人", "领取人 not in ('" & str.replace(",", "','") & "')")
prds.Insert(0, "返修A厂")
prds.Insert(0, "报废")
prds.Insert(0, "未领取")
For Each prd As String In prds
    dtb.AddDef(prd & "_领取数量", Gettype(Integer))
    dtb.AddDef(prd & "_使用数量", Gettype(Integer))
    dtb.AddDef(prd & "_剩余数量", Gettype(Integer))
Next
dtb.Build()
Dim ids As String = DataTables("登记表").GetComboListString("产品id号").replace("|", "','")
For Each cus As String In DataTables("订单").sqlGetValues("format(日期,'yyyy年MM月')")
    Dim dr As DataRow = DataTables("统计").AddNew()
    dr("日期") = cus
    Dim d As Date = new Date(cus.Substring(0,4), cus.SubString(5,2), 1)
    Dim filter As String = "日期 >= #" & d & "# and 日期 < #" & d.addMonths(1) & "#"
    For Each prd As String In prds
        Dim dt As DataTable =DataTables("登记表")
        dr(prd & "_领取数量") = DataTables("订单").Compute("Count(领取人)",filter & " And [领取人] = '" & prd & "'")
        dr(prd & "_使用数量") = DataTables("订单").Compute("Count(领取人)",filter & " And [领取人] = '" & prd & "' and 产品id号 in ('" & ids & "')")
    Next
Next
MainTable= Tables("统计")

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


加好友 发短信
等级:幼狐 帖子:118 积分:1161 威望:0 精华:0 注册:2013/9/9 14:34:00
  发帖心情 Post By:2017/10/19 10:13:00 [只看该作者]

 代码是没有问题了 剩余数量我是这么写得  dr(prd & "_使用数量") = DataTables("订单").Compute("Count(领取人)",filter & " And [领取人] = '" & prd & "' and 产品id号 not in ('" & ids & "')") 但是运行起来太慢了 直接卡掉了 实际的订单表上有4万条记录 登记表上有2万多条记录 有什么办法吗?


 回到顶部
总数 44 上一页 1 2 3 4 5 下一页