以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助]入库审核 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=123287) |
-- 作者:q2520 -- 发布时间:2018/8/11 10:27:00 -- [求助]入库审核 我现在的库存是用表达式统计 Sum(Child(库存采购明细).数量) 现在我的入库明细表里又加了一个验收的逻辑列 意思就是只有验收通过了 采购数量才会增加到库存表里 否则是不增加库存的 老师教下怎么弄
|
-- 作者:有点蓝 -- 发布时间:2018/8/11 10:49:00 -- 改为使用数据列,通过代码计算数量 |
-- 作者:q2520 -- 发布时间:2018/8/11 10:51:00 -- 这不问题 就来了 不会 老师给帮忙写个 |
-- 作者:有点蓝 -- 发布时间:2018/8/11 11:15:00 -- 参考:http://www.foxtable.com/webhelp/scr/1472.htm |
-- 作者:q2520 -- 发布时间:2018/8/11 14:28:00 -- 这个实例和我的不一样 这个是我现在 采购明细里的代码 要怎么改 Select Case e.DataCol.name Case "单价" Dim drs As List(of DataRow) If e.oldvalue <> Nothing Then drs = DataTables("库存").Select("编号 = \'" & e.DataRow("编号") & "\' and 单价 = \'" & e.OldValue & "\'") If drs.count = 0 Then Dim dr = DataTables("库存").AddNew() dr("编号") = e.DataRow("编号") dr("单价") = e.DataRow("单价") dr("名称") = e.DataRow("名称") dr("规格") = e.DataRow("规格") dr("单位") = e.DataRow("单位") dr("类别") = e.DataRow("类别") Else For i As Integer = drs.count-1 To 1 Step -1 drs(i).delete Next drs(0)("单价") = e.DataRow("单价") End If End If drs = DataTables("库存").Select("编号 = \'" & e.DataRow("编号") & "\' and 单价 = \'" & e.NewValue & "\'") If drs.count = 0 Then Dim dr = DataTables("库存").AddNew() dr("编号") = e.DataRow("编号") dr("单价") = e.DataRow("单价") dr("名称") = e.DataRow("名称") dr("规格") = e.DataRow("规格") dr("单位") = e.DataRow("单位") dr("类别") = e.DataRow("类别") Else For i As Integer = drs.count-1 To 1 Step -1 drs(i).delete Next drs(0)("单价") = e.DataRow("单价") End If End Select Select Case e.DataCol.name Case "编号" Dim drs As List(of DataRow) If e.oldvalue <> Nothing Then drs = DataTables("库存").Select("编号 = \'" & e.OldValue & "\' and 单价 = \'" & e.DataRow("单价") & "\'") If drs.count = 0 Then Dim dr = DataTables("库存").AddNew() dr("编号") = e.DataRow("编号") dr("单价") = e.DataRow("单价") dr("名称") = e.DataRow("名称") dr("规格") = e.DataRow("规格") dr("单位") = e.DataRow("单位") dr("类别") = e.DataRow("类别") Else For i As Integer = drs.count-1 To 1 Step -1 drs(i).delete Next drs(0)("编号") = e.DataRow("编号") End If End If drs = DataTables("库存").Select("编号 = \'" & e.newvalue & "\' and 单价 = \'" & e.DataRow("单价") & "\'") If drs.count = 0 Then Dim dr = DataTables("库存").AddNew() dr("编号") = e.DataRow("编号") dr("单价") = e.DataRow("单价") dr("名称") = e.DataRow("名称") dr("规格") = e.DataRow("规格") dr("单位") = e.DataRow("单位") dr("类别") = e.DataRow("类别") Else For i As Integer = drs.count-1 To 1 Step -1 drs(i).delete Next drs(0)("编号") = e.DataRow("编号") End If End Select |
-- 作者:有点蓝 -- 发布时间:2018/8/11 14:35:00 -- Select Case e.DataCol.name Case "验收" Dim dr As DataRow = DataTables("库存").Find("编号 = \'" & e.DataRow("编号") & "\'") If dr IsNot Nothing Then If e.DataRow("验收") = True dr("数量") = dr("数量") + e.DataRow("数量") End If End If End Select
|
-- 作者:有点蓝 -- 发布时间:2018/8/11 14:36:00 -- 或者参考这种:http://www.foxtable.com/webhelp/scr/2472.htm |
-- 作者:q2520 -- 发布时间:2018/8/11 15:00:00 -- 这个代码没起到效果 采购明细开单以后 逻辑列 没勾选 库存照样增加 这个IIF是怎么用的? IIF([Child(库存采购明细).验收] = true,Sum(Child(库存采购明细).数量, Null ) 这样出错 不过就是要这个意思 如果验收列没勾选 那库存表里就不增加数量
|
-- 作者:有点蓝 -- 发布时间:2018/8/11 15:24:00 -- 统计的是辅助列,请认真看帮助 |
-- 作者:q2520 -- 发布时间:2018/8/11 15:47:00 -- 这个问题现在可以了 还有一个问题 如果 所有的出入库单据 都需要很多个人 同意以后才能从库存中正常的加减 正常的操作应该是 很多个逻辑列都勾选以后 单据才生效 但是现在的情况是 出入库产品不一样 需要审核的人也不一样 所以不能固定 怎么样建一个列 让里面显示所有 同意人的名字 意思就是这个出库的单据 这几个人都同意了 就像签名一样 最后就是留一个证据
|