以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  有个项目 困扰了很久 现在终于发现问题了 但不知道如何解决?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91172)

--  作者:jswjyjf
--  发布时间:2016/10/1 9:03:00
--  有个项目 困扰了很久 现在终于发现问题了 但不知道如何解决?
有个项目 困扰了很久 现在终于发现问题了 但不知道如何解决?


项目下有个客户表 销售表
客户表结构 客户编码 客户名称 期初余额 借方金额 贷方金额 余额
销售表结构 单据号 日期 客户编码 客户名称 产品编码 产品名称 数量 单价 金额 
 销售单的datachanged 代码如下

 Dim dr1 As DataRow
        dr1 = DataTables("客户").Find("[客户名称] =\'" & Tables("销售单").current("客户名称") & "\' ")
        If dr3 IsNot Nothing Then
            dr3("借方金额")=dr3("借方金额")+Tables("销售单").current("金额")
            dr3("余额")=dr3("期初金额")+dr3("借方金额")-dr3("贷方金额")
        End If
        DataTables("客户").save()

在网络环境下,录入销售单 客户名称相同的话 ,发现客户的余额 不对 ,原因是加载问题,客户表一旦加入 ,当一个站点保存时 对于另一个站点来说 没有及时更新 还是原来加载时的数据 请教狐爸如何处理这个问题?




--  作者:狐狸爸爸
--  发布时间:2016/10/1 9:16:00
--  

1、先纠正一个小错误,代码中的:

 

Tables("销售单").current

 

应该改为:

 

e.DataRow

 

 

2、多用户输入, 不要这样统计,一般都是用查询表或统计工具,在需要的时候统计出结果,或者用表达式列统计,这样确保每次看到的都是当时正确的结果。

 

 

3、如果一定要这样统计的话,Find用SQLFind代替。

 

4、还可以看看:

http://www.foxtable.com/webhelp/scr/3006.htm

 

[此贴子已经被作者于2016/10/1 9:16:39编辑过]

--  作者:jswjyjf
--  发布时间:2016/10/1 10:10:00
--  
 谢谢狐爸 指点迷津
  我用第三条测试了一下 后台数据没有更新 
 3、如果一定要这样统计的话,Find用SQLFind代替。 

代码如下
        \'进客户
        Dim dr3 As DataRow
        dr3 = DataTables("客户").sqlFind("[客户名称] =\'" & Tables("销售单").current("客户名称") & "\' ")
        If dr3 IsNot Nothing Then
msgbox("$#")   
msgbox(Tables("销售单").current("金额"))

         dr3("借方金额")=dr3("借方金额")+Tables("销售单").current("金额")
msgbox(dr3("借方金额"))


            dr3("余额")=dr3("期初金额")+dr3("借方金额")-dr3("贷方金额")
msgbox(dr3("余额"))
        End If
        DataTables("客户").save()

为啥

--  作者:狐狸爸爸
--  发布时间:2016/10/1 10:11:00
--  
sqlFind得到的是后台数据的当前值,如果你或者其他人输入了数据,没有保存,SQLFind也无能为力
--  作者:jswjyjf
--  发布时间:2016/10/1 10:15:00
--  
上面代码不是保存了吗
--  作者:狐狸爸爸
--  发布时间:2016/10/1 10:20:00
--  
请单独做一个简单的例子发上来,说明你要做什么,描述清楚问题,不要整个项目发上来。
--  作者:jswjyjf
--  发布时间:2016/10/1 10:49:00
--  
我做个最简单的列子 上传过来 狐爸帮助看一下 ,网络环境下多用户录入销售单,客户表的后台余额能同步更新
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.rar


[此贴子已经被作者于2016/10/1 10:49:21编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/10/2 8:21:00
--  
统计结果的准确性很重要,网络环境没有办法100%保证保证统计结果同步。
单独做个查询表,需要的时候,重新Load这个查询表:
http://www.foxtable.com/webhelp/scr/2325.htm
或者另外做个统计按钮。