以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 流水帐 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170236) |
||||
-- 作者:cjl333333333 -- 发布时间:2021/7/17 19:56:00 -- 流水帐 Select Case e.DataCol.Name Case "编号","入库数量","出库数量","入库件数","出库件数" Dim dr As DataRow Dim mr As DataRow = e.DataRow Dim drs As List(of DataRow) Dim jk As Integer Dim ck As Integer Dim jk1 As Integer Dim ck1 As Integer dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [编号] = \'" & mr("编号") & "\'", "[_SortKey] Desc") If dr Is Nothing Then \'如果是第一行,计算结存 jk = DataTables("库存表").SQLCompute("Sum(入库数量)","[_SortKey] < " & mr("_SortKey") & " And 编号 = \'" & mr("编号") & "\'") jk1 = DataTables("库存表").SQLCompute("Sum(入库件数)","[_SortKey] < " & mr("_SortKey") & " And 编号 = \'" & mr("编号") & "\'") ck = DataTables("库存表").SQLCompute("Sum(出库数量)","[_SortKey] < " & mr("_SortKey") & " And 编号 = \'" & mr("编号") & "\'") ck1 = DataTables("库存表").SQLCompute("Sum(出库件数)","[_SortKey] < " & mr("_SortKey") & " And 编号 = \'" & mr("编号") & "\'") mr("库存数量") = e.DataRow("入库数量") - e.DataRow("出库数量") + jk - ck mr("库存件数") = e.DataRow("入库件数") - e.DataRow("出库件数") + jk1 - ck1 dr = mr End If drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [编号] = \'" & dr("编号") & "\'", "[_SortKey]") For i As Integer = 1 To drs.Count - 1 drs(i)("库存数量") = drs(i-1)("库存数量") + drs(i)("入库数量") - drs(i)("出库数量") drs(i)("库存件数") = drs(i-1)("库存件数") + drs(i)("入库件数") - drs(i)("出库件数") Next If e.DataCol.Name = "编号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then \'如果修改的是产品列 dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [编号] = \'" & e.OldValue & "\'", "[_SortKey] Desc") \'找出旧产品的上一行 If dr Is Nothing Then \'如果不存在上一行,那么本行就是旧产品的第一行,由于已经被修改为新产品,需要找出旧产品现在的第一行 dr = e.DataTable.Find("[编号] = \'" & e.OldValue & "\'", "[_SortKey]") \'找出旧产品现在的第一行 If dr IsNot Nothing Then \'如果找到,计算库存 jk = DataTables("库存表").SQLCompute("Sum(入库数量)","[_SortKey] < " & mr("_SortKey") & " And 编号 = \'" & e.OldValue & "\'") jk1 = DataTables("库存表").SQLCompute("Sum(入库件数)","[_SortKey] < " & mr("_SortKey") & " And 编号 = \'" & e.OldValue & "\'") ck = DataTables("库存表").SQLCompute("Sum(出库数量)","[_SortKey] < " & mr("_SortKey") & " And 编号 = \'" & e.OldValue & "\'") ck1 = DataTables("库存表").SQLCompute("Sum(出库件数)","[_SortKey] < " & mr("_SortKey") & " And 编号 = \'" & e.OldValue & "\'") dr("库存数量") = dr("入库数量") - dr("出库数量") + jk - ck dr("库存件数") = dr("入库件数") - dr("出库件数") + jk1 - ck1 End If End If If dr IsNot Nothing Then drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [编号] = \'" & dr("编号") & "\'", "[_SortKey]") For i As Integer = 1 To drs.Count - 1 drs(i)("库存数量") = drs(i-1)("库存数量") + drs(i)("入库数量") - drs(i)("出库数量") drs(i)("库存件数") = drs(i-1)("库存件数") + drs(i)("入库件数") - drs(i)("出库件数") Next End If End If End Select 老师,我这个出入库还是总出现加载下来的记录就会计算不加载下来的就出错。请帮我再看看那里出了问题。
|
||||
-- 作者:有点蓝 -- 发布时间:2021/7/18 20:44:00 -- 请上传实例测试 |
||||
-- 作者:cjl333333333 -- 发布时间:2021/7/19 9:37:00 -- 老师里面太多个表关联了,我也不知怎么上传实例,而且是外部表,我需要做成一个什么项目上传,还是我整个项目上传 |
||||
-- 作者:有点蓝 -- 发布时间:2021/7/19 9:40:00 -- 新建一个项目,导入"库存表"部分数据做测试。把原项目"库存表"表事件复制到新项目,做一个和原项目一样的功能,然后把新项目发上来 |
||||
-- 作者:cjl333333333 -- 发布时间:2021/7/19 9:58:00 -- 也做也外部数据吗? |
||||
-- 作者:有点蓝 -- 发布时间:2021/7/19 10:04:00 -- 内部数据表也一样可以做分页加载和测试的。 |
||||
-- 作者:cjl333333333 -- 发布时间:2021/7/21 10:50:00 -- 老师请帮我看一下 |
||||
-- 作者:cjl333333333 -- 发布时间:2021/7/21 10:57:00 --
|
||||
-- 作者:有点蓝 -- 发布时间:2021/7/21 11:11:00 -- 哪个数据不准?怎么做的加载? |
||||
-- 作者:cjl333333333 -- 发布时间:2021/7/21 11:38:00 -- 库存数量老不会计算,表打开只加载最后一天数据。 |