Foxtable(狐表)用户栏目专家坐堂 → [已解决]仓库结转问题


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

主题:[已解决]仓库结转问题

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


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
[已解决]仓库结转问题  发帖心情 Post By:2013/6/26 15:36:00 [只看该作者]

      昨天用了DON的代码,简化了不少http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=35166&replyID=&skin=1

      现在碰到问题,“仓库总表”中有品号A1,A2,A3,  “采购入库明细表”中有A2,A11,A33,就是“采购入库表”中有部分品号在“仓库总表”中没有,有的品号如A2,的数据目前通过代码已经能够合计出数量、金额加到“仓库总表”中了,A11,A33这些品号没有时候(这因为这些品号是6月份刚新加的,仓库总账中的品号是5月31日结转的。所以做6月份结转的时候,要把这部分品号加到“仓库总账”的“期间6”部分),需要统计出数据,然后加到“仓库总表”中,这个如何操作好?请老师们帮助一下。(结账测试的时候,请选择6月份进行,因为我要把数据转到“仓库总账”的“期间6"的“入库数量”“入库金额”

 

下面有例子:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:仓库结转例子.table

[此贴子已经被作者于2013-6-26 19:01:08编辑过]

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


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
  发帖心情 Post By:2013/6/26 16:20:00 [只看该作者]

“仓库总表”中有品号A1,A2,A3,  “采购入库明细表”中有A2,A11,A33,(红色的品号没有和例子对上,只是大致描述一下意思。)
[此贴子已经被作者于2013-6-26 16:20:22编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/6/26 16:52:00 [只看该作者]


Dim t1 As Table = Tables("仓库总表")
Dim dt1,dt2 As DataTable
Dim dr,dr1,dr2 As DataRow
Dim drs As List(of DataRow)
Dim flt,s1 As String
Dim Date1,Date2 As Date
Date1 = Tables("月末结账").Current("结账期_起")
Date2 = Tables("月末结账").Current("结账期_讫")
dt1 = DataTables("采购入库单明细表")
dt2 = DataTables("生产入库单明细表")
Dim dts As DataTable() ={dt1,dt2}
s1 = "[日期] >= #" & Date1 & "# And [日期]<= #" & Date2 & "#"
flt ="[期间] = '" & Date1.Month & "'"
t1.StopRedraw
For Each dt As DataTable In dts
    drs = dt.Select(s1)
    For Each dr  In drs
        dr1=t1.DataTable.Find(flt & " and [品号] = '" & dr("品号") & " 'and [仓库] = '" & dr("仓库") &  "'")
        If dr1 Is Nothing Then
            dr2 = t1.DataTable.AddNew
            dr2("期间") = Date1.Month
            dr2("仓库") = dr("仓库")
            dr2("品号") = dr("品号")
        End If
    Next
Next


t1.Filter = flt
For Each r2 As Row In t1.Rows
    flt = s1 & " and [品号] = '" & r2("品号") & " 'and [仓库] = '" & r2("仓库") &  "'"
    r2("入库数量") = dt1.Compute("Sum(数量)",flt) + dt2.Compute("Sum(数量)",flt)
    r2("入库金额") = dt1.Compute("Sum(金额)",flt) + dt2.Compute("Sum(金额)",flt)
Next
t1.ResumeRedraw
t1.DataTable.save

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


加好友 发短信
等级:三尾狐 帖子:677 积分:6228 威望:0 精华:0 注册:2012/1/20 17:53:00
  发帖心情 Post By:2013/6/26 17:31:00 [只看该作者]

DON老师,你的代码我看的眼泪都要掉下来了。

图片点击可在新窗口打开查看

太佩服你了。这个思路我怎么没有想到呢,是我对Find,Select,Compute这些基本的方法掌握的不够熟练啊。

 


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2013/11/18 14:42:00 [只看该作者]

这个例子很有示范性,前面只做了入库汇总,期初和期未怎么结转好像没有做.

我在上面的附件增加了一个出库明细表,希望楼群主,don及各位高手继续,让新手学习.

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:仓库结转例子.table


 回到顶部