以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 非关联问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139128) |
||||
-- 作者:lgz518 -- 发布时间:2019/8/6 15:18:00 -- 非关联问题 一。执行下面代码有以下问题: 1.单价,数量引不过去,只有“0”,不知道什么原因? 2.物料号存在时,引用过去出现只有“物料号”,是否可存在就引用不了? 二。对代码改进 1.对存在的物料号,数量可以加减等运算,单价也一样。如:库存数=库存数+进货数,单价=(库存数+进货数)/2; 三。实现类此功能库存计算,是否更高效,准确方法,多表统计有试过还可以,就做多个方法进行验证。请老师,指导,谢谢 Select Case e.DataCol.name Case "物料号"Dim dr As DataRow = DataTables("库存表").Find("物料号 = \'" & e.OldValue & "\'") If dr Is Nothing Then dr = DataTables("库存表").AddNew() dr("物料号") = e.DataRow("物料号") dr("品名") = e.DataRow("品名") dr("型号") = e.DataRow("型号") dr("单价") = e.DataRow("单价") dr("库存数") = e.DataRow("数量") Else dr("物料号") = e.DataRow("物料号") End If Case "品名","型号" Dim dr As DataRow = DataTables("库存表").Find("物料号 = \'" & e.DataRow("物料号") & "\'") If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select Dim dr As DataRow = DataTables("库存表").Find("物料号 = \'" & e.DataRow("物料号") & "\'") If dr IsNot Nothing Then dr.Delete() End If |
||||
-- 作者:lgz518 -- 发布时间:2019/8/6 15:19:00 --
|
||||
-- 作者:有点蓝 -- 发布时间:2019/8/6 15:42:00 -- 先理清逻辑:比如物料号从001改为002,希望做什么操作?如果库存已经同时存在001和002希望做什么操作?如果只存在其中一个又希望做什么操作? 不建议直接更改库存数量的用法,非常容易产生误差,而且也很难查产生误差的原因。如果要做,建议使用审核机制,入库单和出库单在审核之前,不更改库存数量,仅作为库存占用(待入\\出库)数进行库存计算。审核后才真正更改库存数量,审核后的入库单和出库单就不能在做任何更改,如果数量有问题,只能通过退库和入库,或者盘盈盘亏来冲。
|
||||
-- 作者:lgz518 -- 发布时间:2019/8/6 19:53:00 -- 老师,是这个思维,就是做不出来。还有实例中1.单价,数量引不过去,只有“0”,不知道什么原因?2.引用数据都会出现最后行,前有好几个空行。 请老师,指导,谢谢
|
||||
-- 作者:有点蓝 -- 发布时间:2019/8/6 20:34:00 -- 先理清逻辑:比如物料号从001改为002,希望做什么操作?如果库存已经同时存在001和002希望做什么操作?如果只存在其中一个又希望做什么操作? |