以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]月结库存 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=148013) |
-- 作者:冷泉 -- 发布时间:2020/3/29 10:36:00 -- [求助]月结库存 老师您好,我想在这个自动生成的月结库存表里面添加一个期初数据(就是开始做账的商品最初的期初数量和期初金额),只需要查询第一个月的 上月结存_数量=商品资料里面录入的期初库存数量,上月结存_金额=商品资料里面录入的期初库存金额,应该如何修改代码,麻烦老师指导下,谢谢 Dim s As String = e.Form.Controls("月份").Value If s <> "" Then Tables("表B").StopRedraw() \'停止重绘 DataTables("表B").DataRows.Clear Dim dt_in As List(Of DataRow) dt_in = DataTables("入库表").Select("商品编号 is not null", "商品编号,商品名称,规格,月份") \'排序取出 入库表 全部数据 Dim r As Row Dim sum_curr_money, sum_prev_money As Double Dim sum_curr_count, sum_prev_count As Integer r = Tables("表B").AddNew r("商品编号") = dt_in(0)("商品编号") r("商品名称") = dt_in(0)("商品名称") r("规格") = dt_in(0)("规格") If dt_in(0)("月份") < s Then \'之前月 sum_prev_count = sum_prev_count + dt_in(0)("数量") sum_prev_money = sum_prev_money + dt_in(0)("金额") Else If dt_in(0)("月份") = s Then \'本月份 sum_curr_money = sum_curr_money + dt_in(0)("金额") sum_curr_count = sum_curr_count + dt_in(0)("数量") End If For i As Integer = 1 To dt_in.Count - 1 \'写入型号和规格,同时统计入库表数量和金额 If dt_in(i)("商品编号") <> dt_in(i-1)("商品编号") OrElse dt_in(i)("商品名称") <> dt_in(i-1)("商品名称") OrElse dt_in(i)("规格") <> dt_in(i-1)("规格") Then \'不同产品 r("本月入仓_数量") = sum_curr_count r("本月入仓_金额") = sum_curr_money r("上月结存_数量") = sum_prev_count \'暂存 r("上月结存_金额") = sum_prev_money \'暂存 r = Tables("表B").AddNew \'插入新数据 r("商品编号") = dt_in(i)("商品编号") r("商品名称") = dt_in(i)("商品名称") r("规格") = dt_in(i)("规格") sum_curr_money = 0 sum_curr_count = 0 sum_prev_count = 0 sum_prev_money = 0 End If If dt_in(i)("月份") < s Then \'之前月 sum_prev_count = sum_prev_count + dt_in(i)("数量") sum_prev_money = sum_prev_money + dt_in(i)("金额") Else If dt_in(i)("月份") = s Then \'本月 sum_curr_money = sum_curr_money + dt_in(i)("金额") sum_curr_count = sum_curr_count + dt_in(i)("数量") End If Next r("本月入仓_数量") = sum_curr_count r("本月入仓_金额") = sum_curr_money r("上月结存_数量") = sum_prev_count \'暂存 r("上月结存_金额") = sum_prev_money \'暂存 For Each dr As DataRow In DataTables("表B").DataRows \'填充统计数据 sum_curr_count = 0 \'累计本月出仓数量 sum_prev_count = 0 \'累计之前出仓数量 Dim drs_out As List(Of DataRow) Dim filter As String = "商品编号 = \'" & dr("商品编号") & "\' And 商品名称 = \'" & dr("商品名称") & "\'" drs_out = DataTables("出库表").Select(filter, "月份") \'排序取出 出仓 全部数据 For Each dr_out As DataRow In drs_out If dr_out("月份") < s Then sum_prev_count = sum_prev_count + dr_out("数量") Else If dr_out("月份") = s Then sum_curr_count = sum_curr_count + dr_out("数量") Else Exit For End If Next Dim sum_in_prev_count As Integer = dr("上月结存_数量") \'从表中取出暂存数据 Dim sum_in_prev_money As Double = dr("上月结存_金额") \'从表中取出暂存数据 dr("本月出仓_数量") = sum_curr_count dr("上月结存_数量") = sum_in_prev_count - sum_prev_count dr("上月结存_金额") = sum_in_prev_money / sum_in_prev_count * dr("上月结存_数量") dr("本月加权平均单价") = (dr("上月结存_金额") + dr("本月入仓_金额"))/(dr("上月结存_数量") + dr("本月入仓_数量")) dr("本月结存_数量") = dr("上月结存_数量") + dr("本月入仓_数量") - dr("本月出仓_数量") dr("本月结存_金额") = dr("本月加权平均单价") * dr("本月结存_数量") dr("本月出仓_金额") = dr("本月加权平均单价") * dr("本月出仓_数量") Next Tables("表B").ResumeRedraw() End If
|
-- 作者:有点蓝 -- 发布时间:2020/3/29 20:59:00 -- 只需要查询第一个月的 上月结存_数量=商品资料里面录入的期初库存数量,上月结存_金额=商品资料里面录入的期初库存金额 第一个月能够取的到吗?
|
-- 作者:冷泉 -- 发布时间:2020/3/29 22:53:00 -- 第一个月结存数来自于商品资料期初数,不知道如何改代码,麻烦老师帮忙修改下,谢谢 |
-- 作者:有点蓝 -- 发布时间:2020/3/29 23:11:00 -- 不就是? datatables("商品资料").find("查询第一个月数据的条件")
|