以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=97090)

--  作者:huaqing8828
--  发布时间:2017/3/6 9:11:00
--  求助代码
当天的送货数,到下次送该产品的时候,自动将送货数累计到已送货数里面去,代码怎么写,请教老师指点
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:送货清单.table


--  作者:有点色
--  发布时间:2017/3/6 9:15:00
--  

参考流水账设计

 

http://www.foxtable.com/webhelp/scr/1572.htm

 


--  作者:huaqing8828
--  发布时间:2017/3/6 9:26:00
--  
老师,流水账是当天送货就累计了,而我要等后一次送货的时候才累计前一次的送货数,代码不会写
--  作者:有点色
--  发布时间:2017/3/6 10:24:00
--  

DataColChanged事件

 

Select Case e.DataCol.Name
    Case "产品名称","今日送货数","日期"
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[日期] >= #" & e.DataRow("日期") & "# And [产品名称] = \'" & e.DataRow("产品名称") & "\'"
        drs = e.DataTable.Select(Filter)
        For Each dr As DataRow In drs
            Filter = "iif([日期] < #" & dr("日期") & "#, [日期] < #" & dr("日期") & "# And [产品名称] = \'" & dr("产品名称") & "\', [日期] = #" & dr("日期") & "# and _sortkey <= " & dr("_sortkey") & " And [产品名称] = \'" & dr("产品名称") & "\')"
           
            Dim Val1 As Double = e.DataTable.Compute("Sum(今日送货数)",Filter)
            dr("已送货数") = Val1 - dr("今日送货数")
        Next
        If e.DataCol.Name = "产品名称" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            Filter = "[日期] > #" & e.DataRow("日期") & "# And [产品名称] = \'" & e.OldValue & "\'"
            drs = e.DataTable.Select(Filter)
            For Each dr As DataRow In drs
                Filter = "iif([日期] < #" & dr("日期") & "#, [日期] < #" & dr("日期") & "# And [产品名称] = \'" & dr("产品名称") & "\', [日期] = #" & dr("日期") & "# and _sortkey <= " & dr("_sortkey") & " And [产品名称] = \'" & dr("产品名称") & "\')"
               
                Dim Val1 As Double = e.DataTable.Compute("Sum(今日送货数)",Filter)
                dr("已送货数") = Val1 - dr("今日送货数")
            Next
        End If
End Select


--  作者:huaqing8828
--  发布时间:2017/3/6 13:52:00
--  
解决了,谢谢老师