Foxtable(狐表)用户栏目专家坐堂 → 统计问题


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

主题:统计问题

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


加好友 发短信
等级:婴狐 帖子:27 积分:310 威望:0 精华:0 注册:2017/7/6 11:09:00
统计问题  发帖心情 Post By:2017/9/16 17:13:00 [只看该作者]

希望在一个窗口的两个日期输入框中输入日期(默认为本月)范围后,点击一个按钮,能够统计"开piao明细"表中的"产品",“型号”,不重复的“规格”,的“数量”和“金额”。到“产成品收付”表中的“本月付出_数量”和“本月付出_金额”里。而且是合并模式下“产品”“型号”为升序。日期为降序。并且自动填入上月的到“上月付出_数量”“上月付出_金额”

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


加好友 发短信
等级:超级版主 帖子:106132 积分:539771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/16 17:41:00 [只看该作者]

请上传具体例子说明

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


加好友 发短信
等级:婴狐 帖子:27 积分:310 威望:0 精华:0 注册:2017/7/6 11:09:00
...  发帖心情 Post By:2017/9/18 15:20:00 [只看该作者]

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

我尝试了先刷选开piao明细表,然后在从明细表生成统计表,但是统计出来的总是所有。刷选没起到作用。还尝试了统计副本表,也失败了.....

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


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

参考代码

 


Dim dt As DataTable = DataTables("产成品收付存")
dt.DataRows.Clear
Dim dt1 As DataTable = DataTables("开piao明细")
Dim d1 As Date = new Date(Date.Today.year, Date.Today.Month,1)
Dim d2 As Date = d1.AddMonths(1)
For Each ary() As String In dt1.GetValues("型号|规格|单位")
    Dim ndr As DataRow = dt.AddNew
    ndr("型号") = ary(0)
    ndr("规格") = ary(1)
    ndr("单位") = ary(2)
    Dim filter As String = "型号 = '" & ary(0) & "' and 规格 = '" & ary(1) & "' and 单位 = '" & ary(2) & "'"
    filter = filter.Replace("*", "[*]")
    output.show(filter & " and 开piao日期 < #" & d1 & "#")
    Dim psum_sl As Double = dt1.Compute("sum(数量)", filter & " and 开piao日期 < #" & d1 & "#")
    Dim sum_sl_in As Double = dt1.Compute("sum(数量)", filter & " and 开piao日期 >= #" & d1 & "# and 开piao日期 < #" & d2 & "# and 数量 >= 0")
    Dim sum_sl_out As Double = dt1.Compute("sum(数量)", filter & " and 开piao日期 >= #" & d1 & "# and 开piao日期 < #" & d2 & "# and 数量 <= 0")
    ndr("上月结存_数量") = psum_sl
    ndr("本月收进_数量") = sum_sl_in
    ndr("本月付出_数量") = sum_sl_out
Next

 


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


加好友 发短信
等级:婴狐 帖子:27 积分:310 威望:0 精华:0 注册:2017/7/6 11:09:00
出现了这个问题  发帖心情 Post By:2017/9/19 13:40:00 [只看该作者]


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

老师,那我怎么选日期?还是说这个是默认当月的日期

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


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

代码我测试没问题,如果选日期,修改红色代码即可

 

Dim dt As DataTable = DataTables("产成品收付存")
dt.DataRows.Clear
Dim dt1 As DataTable = DataTables("开piao明细")
Dim d1 As Date = new Date(Date.Today.year, Date.Today.Month,1)
Dim d2 As Date = d1.AddMonths(1
)
For Each ary() As String In dt1.GetValues("型号|规格|单位")
    Dim ndr As DataRow = dt.AddNew
    ndr("型号") = ary(0)
    ndr("规格") = ary(1)
    ndr("单位") = ary(2)
    Dim filter As String = "型号 = '" & ary(0) & "' and 规格 = '" & ary(1) & "' and 单位 = '" & ary(2) & "'"
    filter = filter.Replace("*", "[*]")
    output.show(filter & " and 开piao日期 < #" & d1 & "#")
    Dim psum_sl As Double = dt1.Compute("sum(数量)", filter & " and 开piao日期 < #" & d1 & "#")
    Dim sum_sl_in As Double = dt1.Compute("sum(数量)", filter & " and 开piao日期 >= #" & d1 & "# and 开piao日期 < #" & d2 & "# and 数量 >= 0")
    Dim sum_sl_out As Double = dt1.Compute("sum(数量)", filter & " and 开piao日期 >= #" & d1 & "# and 开piao日期 < #" & d2 & "# and 数量 <= 0")
    ndr("上月结存_数量") = psum_sl
    ndr("本月收进_数量") = sum_sl_in
    ndr("本月付出_数量") = sum_sl_out
Next


 回到顶部