以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  同一表格中多个列如何调用另一表格中的数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=73682)

--  作者:lismn456
--  发布时间:2015/8/24 18:12:00
--  同一表格中多个列如何调用另一表格中的数据

同一表格中多个列如何调用另一表格中的数据,如表格1[有产品1]、[产品2]、[产品3]三个列,表格2中有【产品】、【单价】两个列,如何计算表格1中同一行中3个产品单价和


--  作者:大红袍
--  发布时间:2015/8/24 18:15:00
--  

查询三次,把和相加即可。

 

http://www.foxtable.com/help/topics/1451.htm

 

 


--  作者:lismn456
--  发布时间:2015/8/25 9:43:00
--  

不能实现啊,是不是列名对应不了造成的

 


--  作者:大红袍
--  发布时间:2015/8/25 9:50:00
--  
参考2楼,贴出你写的代码。
--  作者:lismn456
--  发布时间:2015/8/25 10:10:00
--  
 

If e.DataCol.Name = "产品" Then
    Dim
nms() As String = {"产品1","产品2","产品3"}
    If
e.NewValue Is Nothing Then

        For
Each nm As String In nms

            e
.DataRow(nm) = Nothing

        Next

    Else

        Dim
dr As DataRow

        dr
= DataTables("产品").Find("[产品] = \'" & e.NewValue &
"\'")
        If
dr IsNot Nothing
            For Each
nm As String In nms
               
e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If


--  作者:大红袍
--  发布时间:2015/8/25 10:35:00
--  
Select Case e.DataCol.Name
    Case "产品1","产品2","产品3"
        Dim fdr1 As DataRow = DataTables("产品").Find("[产品] = \'" & e.DataRow("产品1") & "\'")
        Dim fdr2 As DataRow = DataTables("产品").Find("[产品] = \'" & e.DataRow("产品2") & "\'")
        Dim fdr3 As DataRow = DataTables("产品").Find("[产品] = \'" & e.DataRow("产品3") & "\'")
        Dim sum As Double = 0
        If fdr1 IsNot Nothing Then sum += fdr1("单价")
        If fdr2 IsNot Nothing Then sum += fdr2("单价")
        If fdr3 IsNot Nothing Then sum += fdr3("单价")
        e.DataRow("单价和") = sum
End Select