以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]结存 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=55290)
|
-- 作者:风声
-- 发布时间:2014/8/13 21:13:00
-- [求助]结存
此主题相关图片如下:结存.png

Select Case e.DataCol.Name Case "商品编号","商品名称" Dim dr As DataRow Dim mr As DataRow = e.DataRow Dim drs As List(of DataRow) dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [商品编号] = \'" & mr("商品编号") & "\'", "[_SortKey] Desc") If dr Is Nothing Then mr("结存_数量") = mr("入库_数量")+mr("期初_数量")+ mr("出库_数量") mr("结存_金额") = mr("入库_金额")+mr("期初_金额")- mr("出库_金额") 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 dr("结存_数量") = dr("入库_数量")- dr("出库_数量") dr("结存_金额") = dr("入库_金额")- dr("出库_金额") 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
老师,结存_数量列结存_金额列没有结果
|
-- 作者:有点甜
-- 发布时间:2014/8/13 21:19:00
--
呃,你要填入商品编号、商品名称、入库出库数量等,才会计算的啊。
|
-- 作者:风声
-- 发布时间:2014/8/13 21:49:00
--
此主题相关图片如下:期初.png

期初数据不统计到结存_数据列和结存_金额列中
|
-- 作者:有点甜
-- 发布时间:2014/8/13 21:56:00
--
你代码上没有加入期初数量和期初金额的计算。
比如,你的代码要这样写
drs(i)("结存_数量") = drs(i-1)("结存_数量") + drs(i)("期初_数量") + drs(i)("入库_数量") - drs(i)("出库_数量") drs(i)("结存_金额") = drs(i-1)("结存_金额") + drs(i)("期初_数量") + drs(i)("入库_金额") - drs(i)("出库_金额")
|
-- 作者:风声
-- 发布时间:2014/8/13 22:23:00
--
此主题相关图片如下:负数.png
 老师,红框标出来的负数能变正数码?同时谢谢老师把你写的一段代码加进去吧。感谢。
|
-- 作者:有点甜
-- 发布时间:2014/8/13 22:42:00
--
Select Case e.DataCol.Name Case "商品编号","商品名称" Dim dr As DataRow Dim mr As DataRow = e.DataRow Dim drs As List(of DataRow) dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [商品编号] = \'" & mr("商品编号") & "\'", "[_SortKey] Desc") If dr Is Nothing Then mr("结存_数量") = math.Abs(mr("入库_数量")+mr("期初_数量")+ mr("出库_数量")) mr("结存_金额") = math.Abs(mr("入库_金额")+mr("期初_金额")- mr("出库_金额")) 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)("结存_数量") = math.Abs(drs(i-1)("结存_数量") + drs(i)("期初_数量") + drs(i)("入库_数量") - drs(i)("出库_数量")) drs(i)("结存_金额") = math.Abs(drs(i-1)("结存_金额") + drs(i)("期初_金额") + 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 dr("结存_数量") = math.Abs(dr("期初_数量") + dr("入库_数量")- dr("出库_数量")) dr("结存_金额") = math.Abs(dr("期初_金额") + dr("入库_金额")- dr("出库_金额")) 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)("结存_数量") = math.Abs(drs(i-1)("结存_数量") + drs(i)("期初_数量") + drs(i)("入库_数量") - drs(i)("出库_数量")) drs(i)("结存_金额") = math.Abs(drs(i-1)("结存_金额") + drs(i)("期初_金额") + drs(i)("入库_金额") - drs(i)("出库_金额")) Next End If End If End Select
|
-- 作者:风声
-- 发布时间:2014/8/14 15:43:00
--
谢谢老师,万分感谢
|