以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何设计统计代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8740)

--  作者:ASD123456789
--  发布时间:2010/12/3 10:51:00
--  如何设计统计代码

如果我想做一个仓库系统,如下要求:
“仓库进货明细”表与“仓库出货明细”表是人工输入,但“统计表”要按要求自动统计出来

本月中“类别,品名,规格与色号,单位,单价”都一样的情况下,数量才能相加,如果11月中上月结存数量为10月的月底结存数量

    ,并且汇总所有的数量与金额

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

[此贴子已经被作者于2010-12-3 11:43:42编辑过]

--  作者:czy
--  发布时间:2010/12/3 11:15:00
--  
呵呵,谁能看明白告诉我一声
--  作者:狐狸爸爸
--  发布时间:2010/12/3 11:22:00
--  

建议看看下面的帮助内容,先尝试自己做一下:
 
http://help.foxtable.com/topics/0680.htm

 
http://help.foxtable.com/topics/0681.htm


 
搞不定就可以看看下面的代码,只需做一个按钮,按钮代码为:

 

Dim fl As New Filler
DataTables("仓库存在统计表").DataRows.Clear()
fl.SourceTable = DataTables("仓库进货明细")
fl.SourceCols = "类别,品名,规格与色号,单位1,单价"
fl.DataTable = DataTables("仓库存在统计表")
fl.DataCols = "类别,品名,规格与色号,单位1,单价"
fl.Fill()

For Each dr As DataRow In DataTables("仓库存在统计表").DataRows
     Dim Filter As String = "类别 = \'" & dr("类别") & "\' And "
     Filter = Filter & "品名 = \'" & dr("品名") & "\' And "
     Filter = Filter & "规格与色号 = \'" & dr("规格与色号") & "\' And "
     Filter = Filter  & "单位1 = \'" & dr("单位1") & "\' And "
     Filter = Filter & "单价 = " & dr("单价")
     dr("数量") = DataTables("仓库进货明细").Compute("Sum(数量)",Filter) - DataTables("仓库出货明细").Compute("Sum(数量)",Filter)
Next

 

[此贴子已经被作者于2010-12-3 11:21:56编辑过]

--  作者:czy
--  发布时间:2010/12/3 11:42:00
--  
好怪,第一次我打开的不是一楼的文件。
--  作者:ASD123456789
--  发布时间:2010/12/3 11:45:00
--  

不好意思各位大师,我刚才没把列子表做好了,所以重新再做了不好意思,现在可以请帮忙再看一下,谢谢

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

 

“仓库进货明细”表与“仓库出货明细”表是人工输入,但“统计表”要按要求自动统计出来

本月中“类别,品名,规格与色号,单位,单价”都一样的情况下,数量才能相加,如果11月中上月结存数量为10月的月底结存数量

    ,并且汇总所有的数量与金额


 

[此贴子已经被作者于2010-12-3 12:05:20编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/12/3 12:16:00
--  

自己做做吧,3楼给你帮助的地址,也帮你写了统计代码,自己不尝试怎么能进步呢?

不可能总是别人帮你全部做好的。

自己先尝试,搞不定再就具体的问题提问,看了别人的答案后,再看看自己的代码为啥不行,这样才是学习的。

 

 

[此贴子已经被作者于2010-12-3 12:16:11编辑过]

--  作者:ASD123456789
--  发布时间:2010/12/3 12:36:00
--  
狐爸还是帮我看看吧,我刚才也用了3楼的代码进行改正,可是可以,不过再加后面几个功给代码就不行了,所以还的请你老帮帮我,谢谢
[此贴子已经被作者于2010-12-3 12:50:51编辑过]

--  作者:czy
--  发布时间:2010/12/3 12:56:00
--  

代码在项目的MainTableChanged事件中

 

 

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


--  作者:czy
--  发布时间:2010/12/3 13:45:00
--  

楼上的代码比较符有误,改成下面这样:

 

If MainTable.Name = "仓库存在统计表" Then
    Dim f As New Filler
    f.SourceTable = DataTables("仓库入货明细")
    f.DataTable = DataTables("仓库存在统计表")
    f.ExcludeExistValue = True
    f.ExcludeNullValue = True
    f.Fill()
   
    Dim fl As New Filler
    fl.SourceTable = DataTables("仓库出货明细")
    fl.DataTable = DataTables("仓库存在统计表")
    fl.ExcludeExistValue = True
    fl.ExcludeNullValue = True
    fl.Fill()
   
    \'以下统计
    Dim dt As DataTable = DataTables("仓库入货明细")
    Dim dt1 As DataTable = DataTables("仓库出货明细")
    For Each dr As DataRow In DataTables("仓库存在统计表").DataRows
        Dim Filter As String = "类别 = \'" & dr("类别") & "\' And "
        Filter = Filter & "品名 = \'" & dr("品名") & "\' And "
        Filter = Filter & "规格与色号 = \'" & dr("规格与色号") & "\' And "
        Filter = Filter  & "单位 = \'" & dr("单位") & "\' And "
        Filter = Filter & "单价 = " & dr("单价")
        dr("上月结存_数量") = dt.Compute("Sum(数量)",Filter & " And 年月 < " & dr("年月")) - dt1.Compute("Sum(数量)",Filter & " And 年月 < " & dr("年月"))
        dr("本月_入库_数量") = dt.Compute("Sum(数量)",Filter & " And 年月 = " & dr("年月"))
        dr("本月_出库_数量") = dt1.Compute("Sum(数量)",Filter & " And 年月 = " & dr("年月"))
    Next
End If

[此贴子已经被作者于2010-12-3 14:01:10编辑过]

--  作者:ASD123456789
--  发布时间:2010/12/3 14:05:00
--  
czy大师  以上代码是否放在  “仓库存在统计表”项目的MainTableChanged中的??