Foxtable(狐表)用户栏目专家坐堂 → 菜鸟求助


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

主题:菜鸟求助

美女呀,离线,留言给我吧!
youngling
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
菜鸟求助  发帖心情 Post By:2014/12/24 0:07:00 [只看该作者]

我想完成一个功能,就是如果删除了出库明细表中的一行数据,就自动更新订单明细表中的累计出货数量。

 

订单明细表中的累计出货数量更新代码如下(这个还是甜老师帮我改的呢):

 

Select Case e.DataCol.Name
    Case "累计出货数量"
           Dim filter As String = "客户订单号 = '" & e.DataRow("客户订单号") & "' and 客户产品号 = '" & e.DataRow("客户产品号") & "' and 订单行号 = '" & e.DataRow("订单行号") & "'"

         Dim sum As Double = DataTables("出库明细").Compute("sum(实际交货数量)", filter)
        e.DataTable.ReplaceFor("累计出货数量", sum, filter)
End Select

 

我在出库明细表的DataRowDeleting里面用以下代码希望可以实现这个功能,但是我试了2中方法都不行,调试了好久,无奈只能又来求助了。

 

代码1:

 

Dim dr2 As DataRow
'否则在订单明细表查找同行号的客户产品号,将找到的行赋值给变量dr
dr2 = DataTables("订单明细表").Find("[客户订单号] = '" & e.DataRow("客户订单号") & "' And [订单行号] = '" & e.DataRow("订单行号") & "'")
If dr2 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
    Dim filter As String = "客户订单号 = '" & e.DataRow("客户订单号") & "' and 订单行号 = '" & e.DataRow("订单行号") & "'"
    DataTables("订单明细表").DataCols("累计出货数量").RaiseDataColChanged(filter)
End If

 

代码2:

Dim dr2 As DataRow
'否则在订单明细表查找同行号的客户产品号,将找到的行赋值给变量dr
dr2 = DataTables("订单明细表").Find("[客户订单号] = '" & e.DataRow("客户订单号") & "' And [订单行号] = '" & e.DataRow("订单行号") & "'")
If dr2 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
    Dim filter As String = "客户订单号 = '" & e.DataRow("客户订单号") & "' and 订单行号 = '" & e.DataRow("订单行号") & "'"
    DataTables("订单明细表").DataCols("累计出货数量").RaiseDataColChanged(filter)
End If

 

无论是代码1还是代码2都不会自动更新订单明细表中的累计出货数量。

 

求助,老师们帮我看下哪里有问题,谢谢啦。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/12/24 7:57:00 [只看该作者]

Dim filter As String = "客户订单号 = '" & e.DataRow("客户订单号") & "' and 订单行号 = '" & e.DataRow("订单行号") & "'"
    DataTables("订单明细表").DataCols("累计出货数量").RaiseDataColChanged(filter)

直接这句代码即可,而且你要写到Deleted事件


 回到顶部
美女呀,离线,留言给我吧!
youngling
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/24 8:42:00 [只看该作者]

不行呀,bin大侠,提示错误:

 

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.11.11.1
错误所在事件:表,出库明细,DataRowDeleted
详细错误信息:
调用的目标发生了异常。
不能通过已删除的行访问该行的信息。

 

再帮我看下呢,谢谢!



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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/12/24 8:48:00 [只看该作者]

用2个全局变量

在DeleteING 事件中把 订单号那些存起来

Deleted事件再从变量中取

 回到顶部
美女呀,离线,留言给我吧!
youngling
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/24 9:24:00 [只看该作者]

搞定了,谢谢bin大侠!


 回到顶部