Foxtable(狐表)用户栏目专家坐堂 → [求助]流水账代码有时不计算


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

主题:[求助]流水账代码有时不计算

帅哥哟,离线,有人找我吗?
文道古月
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:303 积分:2363 威望:0 精华:0 注册:2015/10/14 16:55:00
[求助]流水账代码有时不计算  发帖心情 Post By:2016/1/28 9:06:00 [只看该作者]

这段代码,用来计算流水账的,现在有点问题:有些时候,有些行不计算,也没有规律,必须手动重置列,尤其是网络环境时

 

请帮忙看看什么问题

 

Dim dr As DataRow '定义一个其它行(没发生变化的行;这里用来表示被查找的上一行)
        Dim mr As DataRow = e.DataRow '定义一个发生变化的行
        dr = e.DataTable.Find("[_Identify] < " & mr("_Identify") & " and [物料编码] = '" & mr("物料编码") & "' And [移动单元] = '" & mr("移动单元") & "'","[_Identify] desc")
        If dr Is Nothing Then '主动单元行向上没找到,那本行就是第一行
            mr("结存") = mr("移动数量") ''当前变化的行的值=当前变化行的值
        Else '主动单元向上找到了
            mr("结存") = dr("结存") + mr("移动数量") '当前变化行的值=找到的行的结存值+当前变化行的数量值
        End If
       


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


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

网络环境的话,这段代码是有问题的,因为各个人算的都是自己加载的数据,别人新加的数据并没有计算在内的。

 

方法一:你重置列 http://www.foxtable.com/help/topics/2237.htm

 

方法二:用sqlFind查询行

 

Dim dr As DataRow '定义一个其它行(没发生变化的行;这里用来表示被查找的上一行)
Dim mr As DataRow = e.DataRow '定义一个发生变化的行

dr = e.DataTable.sqlFind("[_Identify] < " & mr("_Identify") & " and [物料编码] = '" & mr("物料编码") & "' And [移动单元] = '" & mr("移动单元") & "'","[_Identify] desc")
If dr Is Nothing Then '主动单元行向上没找到,那本行就是第一行
    mr("结存") = mr("移动数量") ''当前变化的行的值=当前变化行的值
Else '主动单元向上找到了
    mr("结存") = dr("结存") + mr("移动数量") '当前变化行的值=找到的行的结存值+当前变化行的数量值
End If

 

同时,你要在DataRowAdded事件写代码 e.DataRow.Save


 回到顶部