Foxtable(狐表)用户栏目专家坐堂 → [求助]入库审核


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

主题:[求助]入库审核

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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
[求助]入库审核  发帖心情 Post By:2018/8/11 10:27:00 [显示全部帖子]

我现在的库存是用表达式统计   Sum(Child(库存采购明细).数量)
现在我的入库明细表里又加了一个验收的逻辑列  意思就是只有验收通过了    采购数量才会增加到库存表里  否则是不增加库存的   老师教下怎么弄

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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/8/11 10:51:00 [显示全部帖子]

这不问题 就来了  不会  老师给帮忙写个

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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By: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

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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/8/11 15:00:00 [显示全部帖子]

这个代码没起到效果   采购明细开单以后  逻辑列  没勾选  库存照样增加  
这个IIF是怎么用的?
IIF([Child(库存采购明细).验收] = true,Sum(Child(库存采购明细).数量, Null )
这样出错  不过就是要这个意思    如果验收列没勾选   那库存表里就不增加数量   

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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/8/11 15:47:00 [显示全部帖子]

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

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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/8/12 8:40:00 [显示全部帖子]

入库设备不一样   需要审核的人员也不一样   比方说机电设备  需要  A B C三个人审核后入库    材料有可能就是A B D F这四个人审核后才能入库    不能固定人员所以如果建好几个逻辑列  审核后  在保存库存   不现实     
所以我就想  是不可以建一个同意审核的按钮   需要审核的人员  只要点了  就会在一个列里   记录他的名字   就算是签字同意了    这个方法对于审核就不太严谨了  好在比没有强 点  
老师要是还有更好的建议   给提出来也行  

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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/8/13 17:09:00 [显示全部帖子]

老大 你给我这一条代码  我理解不了    有实例吗?

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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/8/14 9:22: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

1.上面的代码是采购单的代码     为什么在   库存表   里  名称不会添加进去   


2.还有一个问题  在采购单里 如果输入的是一个新的商品(库存表里没有)就会提示很多次   “子行具有多个父行。“       然后库存表里就会出现3行这个产品信息   但是只有一行信息是完整的  其他2行都只有编号

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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/8/16 8:28:00 [显示全部帖子]

同意审核按钮的代码,这样写,意思是把 user.name的值记录到审核列去

 

Tables("表A").Current("第一列") = user.name & vbcrlf & Tables("表A").Current("第一列")



如果有重复的人名  不让重复显示  怎么弄


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


加好友 发短信
等级:小狐 帖子:316 积分:2193 威望:0 精华:0 注册:2018/2/4 9:37:00
  发帖心情 Post By:2018/8/20 10:06: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("类别")
                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("类别")
            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("类别")
                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("类别")
            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 dr As DataRow = DataTables("库存").Find("编号 = '" & e.DataRow("编号") & "' and 单价 = '" & e.DataRow("单价") & "'")
        ' If dr IsNot Nothing Then
        If e.DataRow("审核") = True
            dr("进货数量") = dr("进货数量") + e.DataRow("数量")
            'End If
        End If
End Select


’库存表
If e.DataCol.Name = "编号" Then
    e.DataRow("进货数量") = DataTables("采购明细").Compute("Sum(数量)","[编号] = '"  & e.DataRow("编号") & "' and [单价] = '" & e.DataRow("单价") & "'and [审核] = ' true '")
End If

 回到顶部
总数 20 1 2 下一页