以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查找最大值问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178103)

--  作者:edisontsui
--  发布时间:2022/6/18 8:14:00
--  查找最大值问题
If e.DataCol.Name = "供应商代号" OrElse e.DataCol.Name = "物料编号" Then
    If e.DataRow.Isnull("供应商代号") = False AndAlso e.DataRow.Isnull("物料编号") = False AndAlso e.DataRow.Isnull("出入库日期") = False Then
        Dim dr As DataRow = DataTables("出入库B").Find("供应商代号 = \'" & e.DataRow("供应商代号") & "\' and 物料编号 = \'" & e.DataRow("物料编号") & "\' and 出入库日期 <> \'" & e.DataRow("出入库日期") & "\'","出入库日期 Desc")
        If dr IsNot Nothing Then
            e.DataRow("入库批次") = 1
        Else
            If dr("检验频率代号") = dr("入库批次") Then
                e.DataRow("入库批次") = 1
            Else
                e.DataRow("入库批次") = dr("入库批次") + 1
            End If
        End If
    End If
End If

图片点击可在新窗口打开查看此主题相关图片如下:图片28.jpg
图片点击可在新窗口打开查看

上面的代码我希望查找前面数据行“入库批次”的最大值,然后决定本行应该得出什么入库批次,但是执行之后“入库批次”总是1,不会发生变化。请问是哪里的问题呢?同供应商代号、同物料编号、不同出入库日期时,“入库批次”应该依次递增的。谢谢。


--  作者:有点蓝
--  发布时间:2022/6/18 8:57:00
--  
查找的时候排除当前行

Dim dr As DataRow = DataTables("出入库B").Find("供应商代号 = \'" & e.DataRow("供应商代号") & "\' and 物料编号 = \'" & e.DataRow("物料编号") & "\' and 出入库日期 <> \'" & e.DataRow("出入库日期") & "\' and _identify <>" & 
e.DataRow("_identify"),"出入库日期 Desc")
--  作者:edisontsui
--  发布时间:2022/6/18 12:54:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:箱号问题.rar

好像还是不行。这是测试项目。

--  作者:有点蓝
--  发布时间:2022/6/18 13:57:00
--  
If dr IsNot Nothing Then
改为
If dr Is Nothing Then