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


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

主题:跨表引用统计

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/7 11:20: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
    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
            If c = "操纵者" Then
                ndr("起落架次") = dt.Compute("sum(起落架次)", "姓名 = '" & dr(c) & "'") + dr("起落架次")
            Else
                ndr("总时间") = dt.Compute("sum(总时间)", "姓名 = '" & dr(c) & "'") + dr("总时间")
                ndr("经历时间") = dt.Compute("sum(经历时间)", "姓名 = '" & dr(c) & "'") + dr("经历时间")
               
            End If
        End If
    Next
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/7 14:10: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
    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
            If c = "操纵者" Then
                ndr("起落架次") = dt.Compute("sum(起落架次)", "姓名 = '" & dr(c) & "'") + dr("起落架次")
            Else If c = "观察员1" Then
                ndr("总时间") = dt.Compute("sum(总时间)", "姓名 = '" & dr(c) & "'") + dr("总时间")
            Else
                ndr("总时间") = dt.Compute("sum(总时间)", "姓名 = '" & dr(c) & "'") + dr("总时间")
                ndr("经历时间") = dt.Compute("sum(经历时间)", "姓名 = '" & dr(c) & "'") + dr("经历时间")
            End If
        End If
    Next
Next 

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/7 14:13:00 [显示全部帖子]

 一次性统计比较好,不然你这种很可能造成重复统计。

 

 或者你可以加入一列,计算列,勾选的话,就计算当前行。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/7 22:33: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
    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("总时间")
            If c = "操纵者" Then
                ndr("起落架次") = dt.Compute("sum(起落架次)", "姓名 = '" & dr(c) & "'") + dr("起落架次")
            Else If c = "观察员1" Then
                
            Else
                ndr("经历时间") = dt.Compute("sum(经历时间)", "姓名 = '" & dr(c) & "'") + dr("经历时间")
            End If
        End If
    Next
Next 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/7 23:21: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
    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 

[此贴子已经被作者于2014-12-7 23:21:30编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/11 15:49:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/12 14:14:00 [显示全部帖子]

 直接说你想做什么。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/19 23:27:00 [显示全部帖子]

 Tables("统计表3").Filter = "起落数< 20"

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/29 14:09:00 [显示全部帖子]

 查找 姓名=操纵者名字,且如果有多个,取最后一个 的行

 

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

 


 回到顶部