以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  跨表引用数据的问题,外部数据源的话,很多不能引用更新,请问该怎么解决?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47053)

--  作者:小刚
--  发布时间: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
--  发布时间:2014/3/4 6:59:00
--  
网络环境下,如果引用的表是变化的,或者虽然表不变化,但没有全部加载,就要用SQLFind。
--  作者:小刚
--  发布时间:2014/3/4 7:47:00
--  
老师给个代码吧   我不知道怎么弄了
--  作者:lsy
--  发布时间:2014/3/4 7:53:00
--  
dr = DataTables("市场").SQLFind("[市场单号] = \'" & e.NewValue & "\'")

--  作者:小刚
--  发布时间:2014/3/4 8:44:00
--  
老师,我发现执行

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

搞得系统很慢

像上面的这个代码

我怎么只更新当前行呢?

是这样的代码吗?

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


--  作者:Bin
--  发布时间:2014/3/4 8:47:00
--  
DataTables("仓库").DataCols("市场单号").RaiseDataColChanged(要更新的行)
--  作者:小刚
--  发布时间: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(要更新的行)

 

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

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


--  作者:小刚
--  发布时间:2014/3/4 18:32:00
--  
DataTables("仓库").DataCols("市场单号").RaiseDataColChanged(dr)
--  作者:小刚
--  发布时间:2014/3/4 18:33:00
--  
是这样的吧
--  作者:有点甜
--  发布时间:2014/3/4 19:14:00
--  
以下是引用小刚在2014-3-4 18:32:00的发言:
DataTables("仓库").DataCols("市场单号").RaiseDataColChanged(dr)


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

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