Foxtable(狐表)用户栏目专家坐堂 → [求助]库存对比


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

主题:[求助]库存对比

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/11 10:33:00 [显示全部帖子]

If e.DataCol.Name = "炸药_数量" Then
    Dim Sum As Double = DataTables("备案").Compute("Sum(炸药_数量)","[单号]  = '" & dr1("单号") & "'")
    Dim dr2 As DataRow
    dr2 = DataTables("审批").Find("[单号]  = '" & dr1("单号") & "'")
    If dr2 IsNot Nothing Then
        If e.NewValue+sum-e.oldvalue > dr2("炸药_数量") Then
            msgbox("使用备案数量不能多于审批数量")
            e.Cancel = True
        End If
    End If
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/11 10:49:00 [显示全部帖子]

If e.DataCol.Name = "炸药_数量" Then
    Dim dr1 = e.datarow
    Dim Sum As Double = DataTables("备案").Compute("Sum(炸药_数量)","[单号]  = '" & dr1("单号") & "'")
    Dim dr2 As DataRow
    dr2 = DataTables("审批").Find("[单号]  = '" & dr1("单号") & "'")
    If dr2 IsNot Nothing Then
        If e.NewValue+sum-e.oldvalue > dr2("炸药_数量") Then
            msgbox("使用备案数量不能多于审批数量")
            e.Cancel = True
        End If
    End If
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/11 11:32:00 [显示全部帖子]

1、每月定的值,在什么地方?如何获取?

 

2、读取到每月的值,然后统计总的值,比较大小即可。

 

日期筛选条件,看看 http://www.foxtable.com/webhelp/scr/2720.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/11 15:28:00 [显示全部帖子]

If e.DataCol.Name = "炸药_数量" Then
    Dim dr1 = e.DataRow
    Dim Sum As Double = DataTables("审批").Compute("Sum(炸药_数量)","[爆破单位]  = '" & dr1("爆破单位") & "'")
    Dim dr2 As DataRow
    dr2 = DataTables("爆破单位").Find("[爆破单位]  = '" & dr1("爆破单位") & "'")
    If dr2 IsNot Nothing Then
        If e.NewValue+sum-e.oldvalue > 100 Then
            msgbox("不能多于每月定量")

            e.cancel = true
        Else
            If e.NewValue+sum-e.oldvalue > dr2("炸药定量") Then
                msgbox("审批数量不能多于定量")
                e.Cancel = True
            End If
        End If
    End If
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/11 15:55:00 [显示全部帖子]

比如

 

Dim d As Date = dr1("日期")

d = New Date(d.year, d.month, 1)

Dim Sum As Double = DataTables("审批").Compute("Sum(炸药_数量)","[爆破单位]  = '" & dr1("爆破单位") & "' and 日期 >= #" & d & "# and 日期 < #" & d.addmonths(1) & "#")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/11 16:22:00 [显示全部帖子]

If dr2 IsNot Nothing Then
    Dim c As Double = e.NewValue+sum-e.oldvalue - dr2("炸药定量")
    If c > 0 Then
        msgbox("审批数量多于定量 " & c)
        e.Cancel = True
    End If
End If


 回到顶部