以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关联表(子表)切换到主表后  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=15443)

--  作者:bm
--  发布时间:2011/12/26 16:01:00
--  关联表(子表)切换到主表后
If e.DataCol.Name = "审核" Then
   If e.NewValue = True Then
   Dim pr As DataRow = Tables("业务.车辆信息").Current.DataRow
   Dim r As Row = Tables("支出明细").AddNew()
   r("支出项目") = "运费"
   r("金额") = pr("应付金额")
   r("收款人") = pr("车辆信息")
   r("关单号") = pr("关单号")
   Tables("业务.车辆信息").Current.Locked = True
   Tables("业务.车辆信息").Current.Save()
   Tables("支出明细").Current.Locked = True
   Tables("支出明细").Current.Save()
  End If
ElseIf e.DataCol.Name = "支付账户" Then
    If e.NewValue IsNot Nothing Then
   Dim pd As DataRow = Tables("业务.车辆信息").Current.DataRow
   Dim d As Row = Tables("支出明细").AddNew()
   d("支出项目") = "出车费"
   d("金额") = pd("出车费")
   d("收款人") = pd("车辆信息")
   d("关单号") = pd("关单号")
   d("支出账户") = pd("支出账户")
   Tables("业务.车辆信息").Current.Locked = True
   Tables("业务.车辆信息").Current.Save()
   Tables("支出明细").Current.Locked = True
   Tables("支出明细").Current.Save()
  End If
End If
[此贴子已经被作者于2011-12-26 16:05:05编辑过]

--  作者:bm
--  发布时间:2011/12/26 16:05:00
--  切换到主表后出错
切换到主表后。在主表中“审核”“支付”数据不对
--  作者:bm
--  发布时间:2011/12/26 16:16:00
--  需要在审核
需要在“审核”或”支付“的时候都是当前行进行操作
--  作者:bm
--  发布时间:2011/12/26 16:56:00
--  请高手帮帮忙
请高手帮帮忙
--  作者:狐狸爸爸
--  发布时间:2011/12/26 22:20:00
--  

你上面的代码,用的都是Current,Current表示当前行,和触发事件的行没有关系。

一般表事件,都是用e.DataRow或者e.Row获得触发事件的行,不应该用Current。

你看看帮助文件中所有的表事件的代码,都是这样的。