以文本方式查看主题

-  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
--  
这个问题现在可以了      还有一个问题
如果 所有的出入库单据  都需要很多个人  同意以后才能从库存中正常的加减    
正常的操作应该是  很多个逻辑列都勾选以后   单据才生效   但是现在的情况是   出入库产品不一样   需要审核的人也不一样  所以不能固定
怎么样建一个列   让里面显示所有  同意人的名字   意思就是这个出库的单据   这几个人都同意了  就像签名一样 最后就是留一个证据