Foxtable(狐表)用户栏目专家坐堂 → 怎样将期初、入库、出库这三张表的数据自动填充到进销存表中并自动计出库存?


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

主题:怎样将期初、入库、出库这三张表的数据自动填充到进销存表中并自动计出库存?

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 15:55:00 [显示全部帖子]

 If MainTable.Name = "进销存" Then
    DataTables("进销存").DataRows.Clear()

    Dim f As New Filler
    f.SourceTable = DataTables("期初") '指定数据来源
    f.SourceCols = "日期,代码,材料名称,摘要,期初数量,期初金额" '指定数据来源列
    f.DataTable = DataTables("进销存") '指定数据接收表
    f.DataCols = "日期,代码,材料名称,摘要,期初数量,期初金额" '指定数据接收列
    f.Fill() '填充数据
    
    Dim f2 As New Filler
    f2.SourceTable = DataTables("入库") '指定数据来源
    f2.SourceCols = "入库日期,代码,材料名称,摘要,入库数量,入库金额" '指定数据来源列
    f2.DataTable = DataTables("进销存") '指定数据接收表
    f2.DataCols = "日期,代码,材料名称,摘要,入库数量,入库金额" '指定数据接收列    
    f2.Fill() '填充数据

    Dim f3 As New Filler
    f3.SourceTable = DataTables("出库") '指定数据来源
    f3.SourceCols = "出库日期,代码,材料名称,摘要,出库数量,出库金额" '指定数据来源列
    f3.DataTable = DataTables("进销存") '指定数据接收表
    f3.DataCols = "日期,代码,材料名称,摘要,出库数量,出库金额" '指定数据接收列    
    f3.Fill() '填充数据

    Dim drs As List(of DataRow) = DataTables("进销存").Select("", "代码,日期 ") '注意排序参数
    drs(0)("结存数量二") = drs(0)("期初数量")
    drs(0)("结存金额二") = drs(0)("期初金额")
    Dim n1,n2 As Double
    For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计
         n1 = IIF( drs(i)("代码") = drs(i-1)("代码"),drs(i-1)("结存数量二"),0)
         n2 = IIF( drs(i)("代码") = drs(i-1)("代码"),drs(i-1)("结存金额二"),0)
         drs(i)("结存数量二") = drs(i)("期初数量") + n1+ drs(i)("入库数量")- drs(i)("出库数量")
         drs(i)("结存金额二") = drs(i)("期初金额") + n2+ drs(i)("入库金额")- drs(i)("出库金额")
    Next

End If
Tables("进销存").Sort = "日期"
图片点击可在新窗口打开查看此主题相关图片如下:20110623-截图 10.png
图片点击可在新窗口打开查看



  已将Tables("进销存").Sort = "日期"放在代码最后面,还是不行,还是不能升序


[此贴子已经被作者于2011-6-23 15:55:26编辑过]

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 15:59:00 [显示全部帖子]

 If MainTable.Name = "进销存" Then
    DataTables("进销存").DataRows.Clear()

    Dim f As New Filler
    f.SourceTable = DataTables("期初") '指定数据来源
    f.SourceCols = "日期,代码,材料名称,摘要,期初数量,期初金额" '指定数据来源列
    f.DataTable = DataTables("进销存") '指定数据接收表
    f.DataCols = "日期,代码,材料名称,摘要,期初数量,期初金额" '指定数据接收列
    f.Fill() '填充数据
    
    Dim f2 As New Filler
    f2.SourceTable = DataTables("入库") '指定数据来源
    f2.SourceCols = "入库日期,代码,材料名称,摘要,入库数量,入库金额" '指定数据来源列
    f2.DataTable = DataTables("进销存") '指定数据接收表
    f2.DataCols = "日期,代码,材料名称,摘要,入库数量,入库金额" '指定数据接收列    
    f2.Fill() '填充数据

    Dim f3 As New Filler
    f3.SourceTable = DataTables("出库") '指定数据来源
    f3.SourceCols = "出库日期,代码,材料名称,摘要,出库数量,出库金额" '指定数据来源列
    f3.DataTable = DataTables("进销存") '指定数据接收表
    f3.DataCols = "日期,代码,材料名称,摘要,出库数量,出库金额" '指定数据接收列    
    f3.Fill() '填充数据

    Dim drs As List(of DataRow) = DataTables("进销存").Select("", "代码,日期 ") '注意排序参数
    drs(0)("结存数量二") = drs(0)("期初数量")
    drs(0)("结存金额二") = drs(0)("期初金额")
    Dim n1,n2 As Double
    For i As Integer = 1 To drs.Count - 1  '从第二行开始逐行计算累计
         n1 = IIF( drs(i)("代码") = drs(i-1)("代码"),drs(i-1)("结存数量二"),0)
         n2 = IIF( drs(i)("代码") = drs(i-1)("代码"),drs(i-1)("结存金额二"),0)
         drs(i)("结存数量二") = drs(i)("期初数量") + n1+ drs(i)("入库数量")- drs(i)("出库数量")
         drs(i)("结存金额二") = drs(i)("期初金额") + n2+ drs(i)("入库金额")- drs(i)("出库金额")
    Next
Tables("进销存").Sort = "日期"
End If

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 15:59:00 [显示全部帖子]

放在

....

....
    Next

    Tables("进销存").Sort = "日期"
End If

之后还是不行

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 16:19:00 [显示全部帖子]

终于可以了,谢谢你mr725帮我解决问题图片点击可在新窗口打开查看,之前用易表做进销存做得不太好,现在用狐表解决了材料进销存明细帐和进销存总帐了,再次说声谢谢你,mr725

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 16:25:00 [显示全部帖子]

1. 现上传进销存设计的修正版,有兴趣设计进销存的的狐友可以参考下,毕竟设计进销存方面的案例太少了

2.经过测试,昨天6月23日设计的进销存中,若录入同一日入库日期和出库日期会出现重复填充入库和出库数据的问题,现加上顺序号来解决.

3.在录入顺序号时,期初的顺序号,入库的顺序号,出库的顺序号不能出现重复,否则也会出现重复填充数据到进销表的问题,造成库存计算不正确的问题.

4.请昨天下载的狐表朋友们,今天重新下载过

5.具体见64至65楼

    
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:进销存第二次修正版.table




[此贴子已经被作者于2011-6-24 8:51:11编辑过]

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 19:50:00 [显示全部帖子]

在录入数据过程中,发现一个问题:

  如果期初日期是2011年6月1日,入库日期也是2011年6月1日,出库日期也是2011年6月1日(或者入库日期与出库日期是同一天时),进销存表中的日期2011年6月1日就会出现多条重复填充数据到进销存表中,导致库存不对,见下表:

 

  


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

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

图片点击可在新窗口打开查看此主题相关图片如下:20110623-截图 3.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-6-23 19:51:54编辑过]

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 19:51:00 [显示全部帖子]

 下面在生成进销存时出现重复同一日入库和出库的数据重复填充

 

 


图片点击可在新窗口打开查看此主题相关图片如下:20110623-截图 45_副本.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-6-23 20:01:30编辑过]

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 19:56:00 [显示全部帖子]

mr725 帮我修正一下代码,避免在录入日期过程中,遇到是在同一日期入库出库会重复填充数据至进销存表的情况!

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 20:07:00 [显示全部帖子]

也就是如果入库日期与出库日期是同一天的,就会多填充了一行入库和出库数据,从而导致库存不对!

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


加好友 发短信
等级:一尾狐 帖子:415 积分:3718 威望:0 精华:0 注册:2009/12/12 17:04:00
  发帖心情 Post By:2011/6/23 20:53:00 [显示全部帖子]

不知是不是在表的关联设置中出问题?

 回到顶部
总数 63 上一页 1 2 3 4 5 6 7 下一页