以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]帮忙看看我使用外部数据表的进销存代码对不对  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=21036)

--  作者:a9858
--  发布时间:2012/6/28 10:07:00
--  [求助]帮忙看看我使用外部数据表的进销存代码对不对
我使用的外部数据表每次打开软件时,库存都是空的,怎么回事,我代码有问题吗,
我使用内部数据表做了一遍,库存是正常的。
请老师帮忙改一下,谢谢!!!
Select Case e.DataCol.name
    Case "日期","车号","入库柴油数量","加油"
        Dim dr1 As DataRow = e.DataRow
        Dim dr2 As DataRow
   For Each dr As DataRow In e.DataTable.Select("[_SortKey] >= " & e.DataRow("_SortKey"))
            Dim Val1 As Double = e.DataTable.Compute("Sum(入库柴油数量)","[_SortKey] <= " & dr("_SortKey"))
            Dim Val2 As Double = e.DataTable.Compute("Sum(加油)","[_SortKey] <= " & dr("_SortKey"))
            dr("库存柴油") = Val1 - Val2
        Next

        If dr1.IsNull("日期") OrElse dr1.IsNull("车号") Then
            dr1("上次里程表数") = Nothing
        Else
            dr2 = e.DataTable.Find("车号 = \'" & dr1("车号") & "\' And 日期 < #" & dr1("日期") & "#","日期 Desc")
            If dr2 IsNot Nothing Then
                dr1("上次里程表数") = dr2("本次里程表数")
            End If
    End If
End Select



--  作者:狐狸爸爸
--  发布时间:2012/6/28 14:09:00
--  

这种代码,不管你是内部表还是外部表,结果都是一样的。

 


--  作者:程兴刚
--  发布时间:2012/6/28 14:50:00
--  
不是数据源的问题,修改第一行或者最后一行在报错
增加判断解决,当第一行时,[_SortKey] <= " & dr("_SortKey")的行没有,反之[_SortKey] >= " & dr("_SortKey")的行也没有,因此报错,自己修改一下吧,您能够自己完成的!