Foxtable(狐表)用户栏目专家坐堂 → 代码改变值后,表事件:DataColChanged 中的代码未执行。


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

主题:代码改变值后,表事件:DataColChanged 中的代码未执行。

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


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

1、你修改客户编号的时候,公司名称肯定是不会改变的,这个时候,不需要触发事件啊;

 

2、那就按照10楼的方法去做。


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


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

你的目的是更新销售订单中的客户编号和客户,为什么不一次在客户表的事件完成呢,公司名称和客户编号取得都是客户同一个表中的内容啊

 

'表:客户,表事件:DataColChanged 写入:
Select Case e.DataCol.Name
    Case "客户编号"
        DataTables("销售订单").ReplaceFor("客户",e.DataRow("公司名称"),"客户编号 = '" & e.OldValue & "'")
        DataTables("销售订单").ReplaceFor(e.DataCol.Name,e.NewValue,"客户编号 = '" & e.OldValue & "'")
End Select

 

 


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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/9/6 12:10:00 [只看该作者]

我用同样的方法,用在:关联表中。还是有问题。
问题是:父表,在更改:编号,时,子表可以自动更改:编号 ;名称,为空;
父表,在更改:名称,时,子表可正常更改:名称。
父表,先更改:编号 ,再更改:名称。子表可自动更改:编号 ,名称,为空。

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


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

如果确保先更改:编号 ,再更改:名称,可以这样用
Case "客户编号"
DataTables("销售订单").ReplaceFor(e.DataCol.Name,e.NewValue,"客户编号 = '" & e.OldValue & "'")

Case "公司名称"
DataTables("销售订单").ReplaceFor("客户",e.NewValue, "客户编号 = '" & e.DataRow("客户编号") & "'")


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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/9/6 12:43:00 [只看该作者]

试了一下,下面的代码。

Case "客户编号"
DataTables("销售订单").ReplaceFor(e.DataCol.Name,e.NewValue,"客户编号 = '" & e.OldValue & "'")

Case "公司名称"
DataTables("销售订单").ReplaceFor("客户",e.NewValue, "客户编号 = '" & e.DataRow("客户编号") & "'")


如果,父表只改:编号,不改:名称;
子表的名称,还是不自动更新.

(我说的是关联表哈。)
之前不是关联表的,我用我刚才的代码,如下,可以正常使用了。就是关联不行。
客户表:
Select Case e.DataCol.Name
    Case "客户编号"
        DataTables("销售订单").ReplaceFor(e.DataCol.Name,e.NewValue,"客户编号 = '" & e.OldValue & "'")
        DataTables("销售订单").DataCols("客户编号").RaiseDataColChanged("客户编号 = '" & e.OldValue & "'")
End Select
销售订单:
If e.DataCol.Name = "客户编号" Then
    Dim dr As DataRow = DataTables("客户").Find("客户编号 = '" & e.DataRow("客户编号") & "'")
    If dr IsNot Nothing Then
        e.DataRow("客户") = dr("公司名称")
    Else
        e.DataRow("客户")= Nothing
    End If
End If

[此贴子已经被作者于2015/9/6 12:44:17编辑过]

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


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

Case "客户编号"

DataTables("销售订单").ReplaceFor("客户",e.DataRow("公司名称") , "客户编号 = '" & e.OldValue & "'")
DataTables("销售订单").ReplaceFor(e.DataCol.Name,e.NewValue,"客户编号 = '" & e.OldValue & "'")

Case "公司名称"
DataTables("销售订单").ReplaceFor("客户",e.NewValue, "客户编号 = '" & e.DataRow("客户编号") & "'")


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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2015/9/6 14:21:00 [只看该作者]

Select Case e.DataCol.Name
    Case "合同编号"
        DataTables("采购订单").ReplaceFor("合同名称",e.DataRow("合同名称"),"合同编号 = '" & e.NewValue & "'")
    Case "合同名称"
        DataTables("采购订单").ReplaceFor("合同名称",e.NewValue,"合同编号 = '" & e.DataRow("合同编号") & "'")
End Select
我用这个方法,解决了。

但是,感觉还是哪里没有太理解透。以后具体这种情况用哪种方法,还是不是很清楚。

我的感觉是:关联表,关联列(合同编号),它因为是关联,所以系统,自动这把值改了。
感觉在用:e.NewValue ,和e.oldvalue时,注意一下。
还是就是:关联表时,用:RaiseDataColChanged好像不行。
[此贴子已经被作者于2015/9/6 14:23:43编辑过]

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