Foxtable(狐表)用户栏目专家坐堂 → [讨论]批次库存查询表


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

主题:[讨论]批次库存查询表

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


加好友 发短信
等级:婴狐 帖子:26 积分:298 威望:0 精华:0 注册:2012/6/13 11:58:00
[讨论]批次库存查询表  发帖心情 Post By:2012/12/5 7:53:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:批次库存表.jpg
图片点击可在新窗口打开查看
 
图片点击可在新窗口打开查看此主题相关图片如下:入库表.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:出库表.jpg
图片点击可在新窗口打开查看

入库表详见图片
出库表详见图片
批次库存表详见图片

要求:
1)按年月批次计算出每个商品的入库数量
2)按年月批次计算出每个商品的出库数量
3)根据对应的年月批次计算每个商品该年月批次的库存数量

代码如下:
Dim jb As New SQLJoinTableBuilder("批次库存表","入库表")
Dim Cols1() As String = {"物料编号","年月批号"}
Dim Cols2() As String = {"物料编号","年月批号"}
jb.AddTable("入库表",Cols1,"出库表",Cols2,JoinModeEnum.Left)
jb.AddCols("{入库表}.物料编号","{入库表}.物料名称","{入库表}.规格描述","{入库表}.单位","{入库表}.年月批号",True)
jb.AddExp("入库数量","Sum({入库表}.入库数量)")
jb.AddExp("出库数量","Sum({出库表}.出库数量)")
jb.AddExp("库存数量","Sum({入库表}.入库数量)-Sum({出库表}.出库数量)")
jb.Build()
MainTable = Tables("批次库存表")

得到的结果存在计算错误,详见《批次库存表》,请各位大虾看看问题出在什么地方?



[此贴子已经被作者于2012-12-5 7:56:10编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/12/5 8:13:00 [只看该作者]

因为入库表、出库表之间是多对多的关系,用这种统计是不合适的。

参考:

http://www.foxtable.com/help/topics/2402.htm

http://www.foxtable.com/help/topics/2305.htm

 


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


加好友 发短信
等级:婴狐 帖子:26 积分:298 威望:0 精华:0 注册:2012/6/13 11:58:00
  发帖心情 Post By:2012/12/5 8:43:00 [只看该作者]

 了解了,谢谢狐爸。

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


加好友 发短信
等级:婴狐 帖子:26 积分:298 威望:0 精华:0 注册:2012/6/13 11:58:00
  发帖心情 Post By:2012/12/5 21:15:00 [只看该作者]

 狐爸,我用下面的代码可以计算出正确的入库数量,出库数量了,但是不知道如何添加表达式计算库存数量?帮助中正好缺这部分内容。
请指教,谢谢!


Dim bd1 As New GroupTableBuilder("统计表1",DataTables("入库表"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("物料编号")
bd1.Groups.AddDef("年月批号")
bd1.Totals.AddDef("入库数量","入库数量1")
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("出库表"))
Dim dt2 As fxDataSource
bd2.Groups.AddDef("物料编号")
bd2.Groups.AddDef("年月批号")
bd2.Totals.AddDef("出库数量","出库数量1")
dt2 = bd2.BuildDataSource()

Dim nms As String() = {"物料编号","年月批号"}
dt1.Combine(nms,dt2,nms)

dt1.Show("统计表1")

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


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

这里有添加表达式的例子啊:
 
http://www.foxtable.com/help/topics/2305.htm


 


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


加好友 发短信
等级:婴狐 帖子:26 积分:298 威望:0 精华:0 注册:2012/6/13 11:58:00
  发帖心情 Post By:2012/12/5 21:24:00 [只看该作者]

试了不成功,那个适用于Table控件,不适用 统计表1,不知道什么原因?

With DataTables("统计表1").DataCols  '用表达式列计算库存数据
    .Add("库存数量1",Gettype(Integer), "IsNull([入库数量1],0) - ISNULL([出库数量1],0))")
End With

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


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

这个得用具体的例子说话吧,否则看不出原因的

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


加好友 发短信
等级:婴狐 帖子:26 积分:298 威望:0 精华:0 注册:2012/6/13 11:58:00
  发帖心情 Post By:2012/12/6 7:34:00 [只看该作者]

 狐爸的是正解,已解决。谢谢!

 回到顶部