Foxtable(狐表)用户栏目专家坐堂 → 汇总求助


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

主题:汇总求助

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/8/28 20:09:00 [显示全部帖子]

流水账?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/8/28 21:06:00 [显示全部帖子]

传错文件了。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/8/28 22:43:00 [显示全部帖子]

因为出仓表中没有金额,我不知道出仓和结存金额如何获取就没有做,下面代码仅供参考

 

Dim s As String = e.Form.Controls("月份").Value
If s <> "" Then
    e.Form.StopRedraw
    Dim n As Integer = e.Form.Controls("月份").Value
    DataTables("月报表").DataRows.Clear
    Dim Arys As List(Of String())
    Arys = DataTables("入仓").GetUniqueValues("", "型号","规格")
    For Each Ary As String() In Arys
        Dim r As Row = Tables("月报表").AddNew
        r("型号") = Ary(0)
        r("规格") = Ary(1)
    Next
    Dim dt As DataTable = DataTables("入仓")
    Dim dt1 As DataTable = DataTables("出仓")
    Dim Filter As String
    For Each dr As DataRow In DataTables("月报表").DataRows
        Filter = "型号 = '" & dr("型号") & "' And 规格 = '" & dr("规格") & "'" 
        dr("上月结存_数量") = dt.Compute("Sum(入仓数量)",Filter & " And 月份 < " & n) - dt1.Compute("Sum(出仓数量)",Filter & " And 月份 < " & n)
        dr("本月入仓_数量") = dt.Compute("Sum(入仓数量)",Filter & " And 月份 = '" & s & "'")
        dr("本月出仓_数量") = dt1.Compute("Sum(出仓数量)",Filter & " And 月份 = '" & s & "'")
        dr("本月结存_数量") = dr("上月结存_数量") + dr("本月入仓_数量") - dr("本月出仓_数量")
    Next
    e.Form.ResumeRedraw
End If

[此贴子已经被作者于2012-8-28 22:43:51编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/8/28 23:23:00 [显示全部帖子]

说老实话,这个别人很难帮到你了,只有你自己知道这个金额它应该怎么来。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/8/29 11:23:00 [显示全部帖子]

看了你的补充说明,觉得问题还是有解的,不过我现在没时间。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/8/29 20:49:00 [显示全部帖子]

不知我理解的对不对?

 

DataTables("月报表").DataRows.Clear
Dim s As String = e.Form.Controls("月份").Value
If s <> "" Then
    Dim n As Integer = e.Form.Controls("月份").Value
    DataTables("月报表").DataRows.Clear
    Dim Arys As List(Of String())
    Arys = DataTables("入仓").GetUniqueValues("", "型号","规格")
    For Each Ary As String() In Arys
        Dim r As Row = Tables("月报表").AddNew
        r("型号") = Ary(0)
        r("规格") = Ary(1)
    Next
    For Each dr As DataRow In DataTables("月报表").DataRows
        Dim s1 As String = "型号 = '" & dr("型号") & "' And 规格 = '" & dr("规格") & "' And 月份 = '" & s & "'"
        Dim s2 As String = "型号 = '" & dr("型号") & "' And 规格 = '" & dr("规格") & "' And 月份 < " & n
        Dim Sum,Sum1 As Double
        dr("本月入仓_数量") = DataTables("入仓").Compute("Sum(入仓数量)",s1)
        dr("本月入仓_金额") = DataTables("入仓").Compute("Sum(入仓金额)",s1)
        dr("本月出仓_数量") = DataTables("出仓").Compute("Sum(出仓数量)",s1)
       
        Sum = DataTables("入仓").Compute("Sum(入仓金额)",s2)
        Sum1 = DataTables("入仓").Compute("Sum(入仓数量)",s2)
        dr("上月结存_数量") = Sum1 - DataTables("出仓").Compute("Sum(出仓数量)",s2)
       
        '-----------------------计算上月结存金额
        dr("上月结存_金额") = Sum / Sum1 * dr("上月结存_数量")
        '-----------------------
       
        dr("本月加权平均单价") = (dr("上月结存_金额") + dr("本月入仓_金额"))/(dr("上月结存_数量") + dr("本月入仓_数量"))
        dr("本月结存_数量") = dr("上月结存_数量") + dr("本月入仓_数量") - dr("本月出仓_数量")
       
        dr("本月结存_金额") = dr("本月加权平均单价") * dr("本月结存_数量")
        dr("本月出仓_金额") = dr("本月加权平均单价") * dr("本月出仓_数量")
       
    Next
End If


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/9/1 22:23:00 [显示全部帖子]

加是e.Form.StopRedraw,选择8月份数据,耗时7.4秒,可以接受啊。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/9/1 22:25:00 [显示全部帖子]

以下是引用实话实说在2012-9-1 15:11:00的发言:

3000记录25秒,有一点改善,还不能满足要求,希望10000条记录5秒以下,3000条记录2秒以下

 

如果要求这个速度,你要改变思路,每月的结存单独做一张表,计算下月数据时从该表提取,应该能达到你想要的速度。


 回到顶部