以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]跨表引用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79654)

--  作者:dixiaxiaodan
--  发布时间:2016/1/6 20:15:00
--  [求助]跨表引用
一共三张表,其他航空公司可靠性数据汇总、昆明航空可靠性数据、海南航空可靠性数据。其中昆明航空可靠性数据、海南航空可靠性数据两张表存有历年的数据。我想要实现的功能是,其他航空公司可靠性数据汇总这张表能够根据年份列自动汇总其它两张表的数据。搞了两天了,实在是没有头绪,向大神们请教了。试用期马上就要到了,需要拿成果去跟领导要钱买开发版,拜托了图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:大红袍
--  发布时间:2016/1/6 20:46:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1 (2).table

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

 


--  作者:dixiaxiaodan
--  发布时间:2016/1/6 22:49:00
--  

红袍哥,你这是什么版本做的,我打不开啊。还有,我做那张汇总表是用来做报表用的,查询表能用来做报表吗?

 


--  作者:大红袍
--  发布时间:2016/1/6 23:39:00
--  
去官网下载最新版本的foxtable安装即可打开。
--  作者:dixiaxiaodan
--  发布时间:2016/1/7 12:30:00
--  
 红袍哥,我要实现的功能是汇总表仅仅汇总一年的数据,例如其他航空公司可靠性数据汇总表的年份列是2015,那么该表就统计2015年的昆航和海航数据
--  作者:dixiaxiaodan
--  发布时间:2016/1/7 13:11:00
--  
 If e.DataCol.Name = "年份" Then \'年份列发生变化.
    Dim DRS_KH As DataRow
    Dim DRSH_KH As DataRow
    Dim i As Integer
    
    For i = 1 To 12
        DRS_KH = DataTables("昆明航空可靠性数据").Find("[航空公司] = \'昆航\' and [年份] = " & e.NewValue & " and [月份] = " & i & " ")
        DRSH_KH = DataTables("其它航空公司可靠性数据年度汇总").Find("[航空公司] = \'昆航\' and [年份] = " & e.NewValue & " and [月份] = " & i & " ")
        Dim nms() As String = { "机队可利用率" ,"机队日利用率","小时循环比","机械SDR万时率" ,"非计划停场率" ,"部件非计划拆换率" ,"故障率" ,"空中停车万时率" , "机械不正常千次率" }
        For Each nm As String In nms
             DRSH_KH(nm) = DRS_KH(nm)
        Next
    Next   
End If
这是我写的代码,可是报错

--  作者:dixiaxiaodan
--  发布时间:2016/1/7 13:24:00
--  
 又逗比了,这样好了。
If e.DataCol.Name = "年份" Then \'年份列发生变化.
    Dim DRS_KH As DataRow
    Dim DRSH_KH As DataRow
    Dim i As Integer  
    For i = 1 To 12
        DRS_KH = DataTables("昆明航空可靠性数据").Find("[航空公司] = \'昆航\' and [年份] = " & e.NewValue & " and [月份] = " & i & " ")
        DRSH_KH = DataTables("其它航空公司可靠性数据年度汇总").Find("[航空公司] = \'昆航\' and [年份] = " & e.NewValue & " and [月份] = " & i & " ")
        Dim nms() As String = { "机队可利用率" ,"机队日利用率","小时循环比","机械SDR万时率" ,"非计划停场率" ,"部件非计划拆换率" ,"故障率" ,"空中停车万时率" , "机械不正常千次率" }
        If DRS_KH IsNot Nothing And DRSH_KH IsNot Nothing Then
            For Each nm As String In nms
                 DRSH_KH(nm) = DRS_KH(nm)
            Next
        End If
    Next   
End If

--  作者:大红袍
--  发布时间:2016/1/7 14:21:00
--  
If e.DataCol.Name = "年份" OrElse e.DataCol.name = "月份" Then \'年份列发生变化.
   
    Dim nms() As String = { "机队可利用率" ,"机队日利用率","小时循环比","机械SDR万时率"}
    Dim fdr = DataTables("昆明航空可靠性数据").find("[航空公司] = \'昆航\' and [年份] = \'" & e.DataRow("年份") & "\' and 月份 = \'" & e.DataRow("月份") & "\'")
    If fdr IsNot Nothing Then
       
        For Each nm As String In nms
            e.DataRow(nm) = fdr(nm)
        Next
    End If
   
End If

--  作者:dixiaxiaodan
--  发布时间:2016/1/7 14:26:00
--  

厉害,比我写的强太多了