Foxtable(狐表)用户栏目专家坐堂 → 跨表引用数据的问题,外部数据源的话,很多不能引用更新,请问该怎么解决?


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

主题:跨表引用数据的问题,外部数据源的话,很多不能引用更新,请问该怎么解决?

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


加好友 发短信
等级:二尾狐 帖子:584 积分:3816 威望:0 精华:0 注册:2012/10/15 20:39:00
跨表引用数据的问题,外部数据源的话,很多不能引用更新,请问该怎么解决?  发帖心情 Post By:2014/3/4 0:17:00 [只看该作者]

比如,从【市场】数据表里面引用 “单价” “收费” “金额” 三列数据,到【仓库】的表里面。

在【仓库】的Datacolchange 里面设置了如下的代码,但是发现,很多数据引用不进来。

有的行的数据就可以,有的行就不可以。

是外部数据源的表。【市场】和【仓库】加载的数据也不一样。

该如何解决?

 

 

DataTables("仓库").DataCols("市场单号").RaiseDataColChanged()

If e.DataCol.Name = "市场单号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("单价") = Nothing
        e.DataRow("收费") = Nothing
        e.DataRow("金额") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("市场").Find("[市场单号] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("单价") = dr("单价")
            e.DataRow("收费") = dr("收费")
            e.DataRow("金额") = dr("金额")
        End If
    End If
End If

[此贴子已经被作者于2014-3-4 0:18:47编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/4 6:59:00 [只看该作者]

网络环境下,如果引用的表是变化的,或者虽然表不变化,但没有全部加载,就要用SQLFind。

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


加好友 发短信
等级:二尾狐 帖子:584 积分:3816 威望:0 精华:0 注册:2012/10/15 20:39:00
  发帖心情 Post By:2014/3/4 7:47:00 [只看该作者]

老师给个代码吧   我不知道怎么弄了

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/4 7:53:00 [只看该作者]

dr = DataTables("市场").SQLFind("[市场单号] = '" & e.NewValue & "'")

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


加好友 发短信
等级:二尾狐 帖子:584 积分:3816 威望:0 精华:0 注册:2012/10/15 20:39:00
  发帖心情 Post By:2014/3/4 8:44:00 [只看该作者]

老师,我发现执行

DataTables("仓库").DataCols("市场单号").RaiseDataColChanged()

搞得系统很慢

像上面的这个代码

我怎么只更新当前行呢?

是这样的代码吗?

DataTables("仓库").DataCols("市场单号").RaiseDataColChanged(DataRow)


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


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

DataTables("仓库").DataCols("市场单号").RaiseDataColChanged(要更新的行)

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


加好友 发短信
等级:二尾狐 帖子:584 积分:3816 威望:0 精华:0 注册:2012/10/15 20:39:00
  发帖心情 Post By:2014/3/4 18:19:00 [只看该作者]

老师,我是在【产品】表内执行如下代码,然后,想在,【仓库】里面自动更新“单价”“收费”“金额”这三项【产品】表里面没有的,但是【市场】表里面有的内容。

自动从【市场】更新到【仓库】里面。

我在【产品】的Datacolchange里面输入了以下的代码:

 

If e.DataCol.Name = "审核" AndAlso e.DataRow("审核") = True Then
    Dim nma() As String = {"A1","A2","A3","A4"}
'A表数据来源列

   
Dim nmb() As String = {"B1","B2","B3","B4"} 'B表数据接收列
   
Dim dr As DataRow = DataTables("仓库").AddNew
   
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
   
Next
End
If

DataTables("仓库").DataCols("市场单号").RaiseDataColChanged(要更新的行)

 

可以这么写激活“市场单号”的代码吗?

要更新的行,又该如何写?


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


加好友 发短信
等级:二尾狐 帖子:584 积分:3816 威望:0 精华:0 注册:2012/10/15 20:39:00
  发帖心情 Post By:2014/3/4 18:32:00 [只看该作者]

DataTables("仓库").DataCols("市场单号").RaiseDataColChanged(dr)

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


加好友 发短信
等级:二尾狐 帖子:584 积分:3816 威望:0 精华:0 注册:2012/10/15 20:39:00
  发帖心情 Post By:2014/3/4 18:33:00 [只看该作者]

是这样的吧

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/4 19:14:00 [只看该作者]

以下是引用小刚在2014-3-4 18:32:00的发言:
DataTables("仓库").DataCols("市场单号").RaiseDataColChanged(dr)


更新【市场单号】?什么意思?

做什么操作,更新哪个表的【市场单号】?

 回到顶部