以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]谁能帮忙设计一个计算库存的表达式,或者代码?(重发) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=13423) |
||||
-- 作者:yacity -- 发布时间:2011/10/11 17:28:00 -- [求助]谁能帮忙设计一个计算库存的表达式,或者代码?(重发) 产品表的库存数量 是根据 产品表的初始数量-出货记录表的出货数量+制袋表的数量 计算得出
表达式如下 IsNull([shuliang],0) - isnull(Sum(Child(产品联出货).shuliang),0)+isnull(Sum(Child(产品联制袋).shuliang),0)
现在 要求制袋 的数量 只有 入库 的制袋生产记录才参加统计,不入库的不参加库存统计,如何实现呢?
[此贴子已经被作者于2011-10-11 17:45:15编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/10/11 17:42:00 -- 你的系统哪有什么库存数量表?
|
||||
-- 作者:yacity -- 发布时间:2011/10/11 17:46:00 -- 不好意思! 弄错了。 是产品表的库存数量 [此贴子已经被作者于2011-10-11 17:46:36编辑过]
|
||||
-- 作者:mr725 -- 发布时间:2011/10/11 17:49:00 -- 哪有库存数量表呢? |
||||
-- 作者:yacity -- 发布时间:2011/10/11 18:14:00 -- 已经更正 是 产品表的库存数量 |
||||
-- 作者:mr725 -- 发布时间:2011/10/11 18:34:00 -- 在产品表增加一数据列:【库存数量】 在制袋表的datacolchanged中加上,看看结果:
Case "ruku" Else [此贴子已经被作者于2011-10-11 18:34:41编辑过]
|
||||
-- 作者:don -- 发布时间:2011/10/11 18:47:00 -- chanpin: Select Case e.DataCol.Name Case "shuliang" Dim fl as string = "chanpinid = " & e.DataRow("_Identify") Dim n1,n2 As Double n1 = DataTables("chuhuo").Compute("sum(shuliang)",fl) n2 = DataTables("zhidai").Compute("sum(shuliang)",fl & " and ruku = True") e.DataRow("库存数量")=dr("shuliang")- n1+n2 End Select chuhuo: Select Case e.DataCol.Name Case "shuliang" Dim n1,n2 As Double Dim fl as string = "chanpinid = " & e.DataRow("chanpinid") n1 = DataTables("chuhuo").Compute("sum(shuliang)",fl) n2 = DataTables("zhidai").Compute("sum(shuliang)",fl & " and ruku = True") Dim dr As DataRow = e.DataRow.GetParentrow("chanpin") if dr isnot nothing then dr("库存数量")=dr("shuliang")- n1+n2 end if End Select ZHIDAI: Select Case e.DataCol.Name Case "shuliang","ruku" Dim n1,n2 As Double Dim fl As String = "chanpinid = " & e.DataRow("chanpinid") n1 = DataTables("chuhuo").Compute("sum(shuliang)",fl) n2= DataTables("zhidai").Compute("sum(shuliang)",fl & " and ruku = True") Dim dr As DataRow = e.DataRow.GetParentrow("chanpin") If dr IsNot Nothing Then dr("库存数量")=dr("shuliang")- n1+n2 End If End Select
|
||||
-- 作者:yacity -- 发布时间:2011/10/11 22:33:00 -- 谢谢mr725和don 除了用代码,表达式不能实现吗? 我这个比较特殊的地方在于 出货记录表,不是一条一条记录录入,而是在出货单页面 通过窗口录入,一次性可以录入多条记录。
出货记录如下
而是在出货单表 通过点击客户ID 启动出货单窗口录入 界面如下
所以如果库存数量也要减掉出货数量的话,如果通过代码来实现就比较麻烦,我在想表达式可不可以? 关键是 制袋表 入库才参与统计,不入库不参与统计。能不能用表达式来实现?
[此贴子已经被作者于2011-10-11 22:34:59编辑过]
|
||||
-- 作者:mr725 -- 发布时间:2011/10/11 22:52:00 -- 表达式不好使,7楼don老师已经给出了代码,稍加修改就可以了。 |
||||
-- 作者:don -- 发布时间:2011/10/12 17:29:00 -- 表达式法: chanpin: IsNull([shuliang],0) - isnull(Sum(Child(产品联出货).shuliang),0)+isnull(Sum(Child(产品联制袋).数量),0)ZHIDAI增数量列,表达式为: IIF([ruku] = True,[shuliang],0)
|