Foxtable(狐表)用户栏目专家坐堂 → 保存存时确保相关表单数据一致的办法?


  共有2947人关注过本帖树形打印复制链接

主题:保存存时确保相关表单数据一致的办法?

帅哥哟,离线,有人找我吗?
HappyFt
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1916 积分:17110 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/3/16 23:56:00 [只看该作者]

如果将保存全部写在一个按钮中用sql事务实现,那原来系统默认的保存按钮就没用了,但如果不用,怎么样能导致beforesavedatarow的代码?因为很多表的beforesavedatarow中都有验证数据是否为空的代码必须要执行,如果还保存留系统默认的保存按钮,那和自己设置的保存不是重复了,保存了两次,该怎么办?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/16 23:59:00 [只看该作者]

beforesavedatarow事件都加上

 

e.Cancel = True 不就行了?先执行系统的保存,再运行自己的sql保存代码。


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1916 积分:17110 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/3/17 0:16:00 [只看该作者]

是噢,怎么没想到,谢谢!

老师说库存数量没必要实时更新,我一直不明白,实际中用户都是想随时知道每种产品的实时库存,上万种产品,而且有很多出入库单据如采购入库,出库,生产入库,出库等等 ,不可能每次查询时都调用所有的单据出来计算入库及出库的差值啊,所以我的做法是每月盘点后都将最新的库存更新到一个库存表中,每张单据变动保存时都根据产品编码用变动量加减上一次的库存数量,这种处理方式是不正确的吗?
还有很多业务单据如生产单,要分很多次生产入库,而每次生产入库时都要更新一个累计入库到目标生产单中,这样每次填写生产入库单时就可以根据生产数量和累计入库的差值来判断只提取那些还没有全部入库的生产单 出来供用户选择,难道这种方式错了?

虽然有点啰嗦,但是影响到处理业务的很多思路,还请老师指正,以免我一直错下去却不知道,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/3/17 8:49:00 [只看该作者]

我接触的到的库存计算方法:

要么是实时的,就是单独用表记录库存,出入库实时变更库存数量,有些业务可能还会有在途数量,可用数量,回退数量,库存预警等等复杂的应用,都会在这个表体现,好处是不用复杂的计算就可以知道实时的库存变化,缺点是由于所有涉及到库存变化的业务操作都要更新库存表,因此需要有一套很好的方法来处理争用和死锁

另外一种,就是不记录实时库存,通过出入库订单来进行统计,由于主要是由查询得到的库存实时信息,不会出现死锁,库存变化的操作比较简单,缺点是增加了服务器计算的负担,对于出库的并发争用很难控制,库存预警也不好处理。



 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/17 9:34:00 [只看该作者]

每个月做一次盘点,得出最新的库存数据,然后这个月出入库的,统计起来,和期初的加减就是结果。

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1916 积分:17110 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/3/17 12:47:00 [只看该作者]

我现在做的就是Hyphen老师说的方式,有一个单独的库存表,每月盘点时更新其数据,然后每张出入库单(有十几种,外协出入,采购出入等,分的很细),保存时就更新相应的库存,
但就是有时意外发生(断电或有些表单保存时出错等)会出现数据不准的现象,所以又另外做了一个更新库存的储存过程,每次不准时就执行它即从本次盘点数开始统计所有表中的出入库数据,然后将统计结果更新到库存表中。

原来就是事务写法不对,现在如果按老师说的方式改过来,应该可以保证了。谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1916 积分:17110 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/4/24 19:47:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160424194001.png
图片点击可在新窗口打开查看

当表中没有数据变化时运行8楼的代码就会出错,请教如何避免这种错误?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/24 20:32:00 [只看该作者]

Dim t As System.Data.DataTable = Tables("表A").DataTable.BaseTable
Dim tm As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.Modified )   '新增行
If tm IsNot Nothing Then
    For Each dr As object In tm.Rows
        Dim str As String = ""
        For Each dc As object In tm.Columns
            Dim obj1 = dr(dc, System.Data.DataRowVersion.Original)
            Dim obj2 = dr(dc)
            If obj1.Tostring <> obj2.Tostring Then
                str &= dc.ColumnName & "='" & dr(dc.ColumnName) & "',"
            End If
        Next
        msgbox(str.trim(","))
    Next
End If

 回到顶部
总数 18 上一页 1 2