以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何批量处理流水帐 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139085) |
||||
-- 作者:lgz518 -- 发布时间:2019/8/5 16:14:00 -- 如何批量处理流水帐 1.帮助-实例-是用手动录入,我的实例是想实现以下功能: (1)批量操作:期初,入库,出库数量,我都从期初表,进货单,出货单,批量导入,这个功能没问题,现在存在以下; 1.1导入数据,同一个产品同一日期不在同一行,不是我想要,我想是同一个产品同一日期在同一行,同一个产品同不一日期在不同一行,这个如何实现? 1,3如何在另一个查看流水帐每一种产品最后库存数,并可以期数据导出。 以上功能如,会计中,做好凭证记录,就可以实现明细帐和总帐的功能。 请老师,指导,谢谢, 此功能,也是常规功能,会有多人需要 示例二 对于下图所示这种区分产品的流水账:
需要将DataColChanged事件代码改为:
上述代码的第一部分(3到14行),用于在修改某行的产品、入库、出库后,重算从此行开始的所有同产品的行的余额,代码原理已经在上面不区分产品的流水账中介绍,不同的只是在条件表达式中加入了产品比较,请大家自己分析。
表事件AfterMoveRow的代码保持不变: Dim Key
As
Decimal 表事件DataRowDeleting的代码同样保持不变: e.DataRow("入库")
= 0 如果多用户同时录入数据,可以在项目事件AfterOpenproject中加入代码:
Dim
drs
As
New
List(of
DataRow) 这样打开项目之后,会自动重置每个产品的第一行,刷新每个产品的库存。 |
||||
-- 作者:lgz518 -- 发布时间:2019/8/5 16:21:00 --
|
||||
-- 作者:有点蓝 -- 发布时间:2019/8/5 17:06:00 -- 1、导入的时候查询是否有此物料的数据在决定是否新增,如: Dim Cols1() As String = {"进货日期","物料号","品名","型号","数量","单价"} \'来源表-入库单要引入的字段 Dim Cols2() As String = {"日期","物料号","品名","型号","入库数量","入库价"} \'接收表-库存表要接收的字段 For Each dr1 As DataRow In DataTables("进货单").Select("[审核] = 1") \' Dim dr2 As DataRow = DataTables("流水帐").Find("物料号=\'" & dr1("物料号") & "\' and 日期=#" & dr1("进货日期") & "#") If dr2 Is Nothing Then dr2 = DataTables("流水帐").AddNew() End If For i As Integer = 0 To Cols1.Length -1 dr2(Cols2(i)) = dr1(Cols1(i)) Next Next 2、计算期末库存就是计算日期最大的数据,如: For Each n As String In DataTables("流水帐").GetValues("物料号") Dim dr As DataRow = DataTables("流水帐").Find("物料号=\'" & n & "\'","日期 desc") Output.Show("物料号" & n & "期末库存为:" & dr("库存数")) Next 每月最后一天凌晨的时候计算期末库存,即是下月的期初库存。 |