Foxtable(狐表)用户栏目专家坐堂 → 跨表引用统计


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

主题:跨表引用统计

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


加好友 发短信
等级:婴狐 帖子:88 积分:518 威望:0 精华:0 注册:2015/5/3 21:12:00
  发帖心情 Post By:2015/5/5 15:04:00 [显示全部帖子]

 方法一,你可以设定条件控制要统计的日期啊

 

Dim dt As DataTable = DataTables("人员任务统计")
'dt.DataRows.Clear
Dim cs() As String = {"左座", "右座", "操纵者", "观察员1"}
For Each dr As DataRow In DataTables("任务书").Select("飞行日期 > #4/30/2015#", "飞行日期")
    Dim ndr As DataRow
    For Each c As String In cs
        If dr.IsNull(c) = False Then
            If c = "操纵者" Then
                ndr = dt.Find("姓名 = '" & dr(c) & "'", "_Identify desc")
            Else
                ndr = dt.AddNew
            End If
            ndr("日期") = dr("飞行日期")
            ndr("机型") = dr("机型")
            ndr("姓名") = dr(c)
            ndr(c) = True

            ndr("总时间") = dr("总时间")

            ndr("经历时间") = dr("经历时间")
            If c = "操纵者" Then
                ndr("起落架次") = dt.Compute("sum(起落架次)", "姓名 = '" & dr(c) & "'") + dr("起落架次")
            End If
        End If
    Next
Next 


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


加好友 发短信
等级:婴狐 帖子:88 积分:518 威望:0 精华:0 注册:2015/5/3 21:12:00
  发帖心情 Post By:2015/5/5 15:12:00 [显示全部帖子]

 或者,你可以试试用下面的代码

 

Dim dt As DataTable = DataTables("人员任务统计")
dt.DataRows.Clear
Dim cs() As String = {"操纵者", "左座", "右座", "观察员1"}
For Each dr As DataRow In DataTables("任务书").Select("", "飞行日期")
    Dim ndr As DataRow
    Dim cdr As DataRow = Nothing
    For Each c As String In cs
        If dr.IsNull(c) = False Then
            If c = "操纵者" Then
                ndr = dt.AddNew
                cdr = ndr
            Else
                If cdr("姓名") = dr(c) Then
                    ndr = cdr
                Else
                    ndr = dt.AddNew
                End If
            End If
            ndr("日期") = dr("飞行日期")
            ndr("机型") = dr("机型")
            ndr("姓名") = dr(c)
            ndr(c) = True
           
            ndr("总时间") = dr("总时间")
           
            ndr("经历时间") = dr("经历时间")
            If c = "操纵者" Then
                ‘ndr("起落架次") = dt.Compute("max(起落架次)", "姓名 = '" & dr(c) & "'") + dr("起落架次")
            End If
        End If
    Next
Next


 回到顶部