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


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

主题:跨表统计

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


加好友 发短信
等级:幼狐 帖子:51 积分:491 威望:0 精华:0 注册:2018/1/30 14:13:00
跨表统计  发帖心情 Post By:2022/6/28 23:24:00 [显示全部帖子]

两个表:混凝土设计量,混凝土统计明细,混凝土设计量 的 实耗量列=混凝土统计明细 运输方量 列 统计之和,
混凝土统计明细表DataColChanged事件代码:
Select Case e.DataCol.Name
    Case "运输方量"
        If e.NewValue <> e.OldValue
            Dim pr As DataRow
            Dim filter As String
            filter = "[拌合站] = '" & e.DataRow("拌合站") & " ' And [施工日期] = '" & e.DataRow("施工日期") & " ' And [工程名称] = '" & e.DataRow("工程名称") & " ' And [分项工程] = '" & e.DataRow("分项工程") & " ' And [施工部位] = '" & e.DataRow("施工部位") & " ' And [强度等级] = '" & e.DataRow("强度等级") & " ' And [劳务队名称] = '" & e.DataRow("劳务队名称") & " '"
            pr = DataTables("混凝土设计量").Find(filter)
            If pr IsNot Nothing Then
                DataTables("混凝土设计量").DataCols("工程名称").RaiseDataColChanged(pr)
            End If
        End If
End Select。
为什么:混凝土设计量表 的 实耗量 列 数据统计要慢一拍(混凝土统计明细 运输方量 列 数据边2次,混凝土设计量表 的 实耗量 列 统计的是第一次变动的结果,总是慢一拍,不是同步变动)
[此贴子已经被作者于2022/6/28 23:30:38编辑过]

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


加好友 发短信
等级:幼狐 帖子:51 积分:491 威望:0 精华:0 注册:2018/1/30 14:13:00
  发帖心情 Post By:2022/6/28 23:38:00 [显示全部帖子]

尝试了,有延迟,才加了个判断


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


加好友 发短信
等级:幼狐 帖子:51 积分:491 威望:0 精华:0 注册:2018/1/30 14:13:00
  发帖心情 Post By:2022/6/29 9:09:00 [显示全部帖子]

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "设计量","变更量1","变更量2","损耗系数","变更后设计量","应耗量","节超量_不含损耗","节超量_含损耗","节超率_不含损耗","节超率_含损耗"
        If dr.IsNull("设计量") And dr.IsNull("变更量1") And dr.IsNull("变更量2")  Then
            dr("变更后设计量") = Nothing
            dr("应耗量") = Nothing
            dr("节超量_不含损耗") = Nothing
            dr("节超量_含损耗") = Nothing
            dr("节超率_不含损耗") = Nothing
            dr("节超率_含损耗") = Nothing
        Else
            dr("变更后设计量") = dr("设计量") + dr("变更量1") +dr("变更量2")
            dr("应耗量") = (dr("设计量") + dr("变更量1") + dr("变更量2")) * (1 + dr("损耗系数"))
            dr("节超量_含损耗") = (dr("设计量") + dr("变更量1") + dr("变更量2")) * (1 + dr("损耗系数")) - dr("实耗量")
            dr("节超量_不含损耗") = dr("设计量") + dr("变更量1") + dr("变更量2") - dr("实耗量")
            If  dr("变更后设计量") = 0 Then
                
                dr("节超率_不含损耗") = 0
                dr("节超率_含损耗") = 0
            Else
                dr("节超率_不含损耗") = dr("节超量_不含损耗") / dr("变更后设计量")
                dr("节超率_含损耗") = dr("节超量_含损耗") / dr("变更后设计量")
            End If
        End If
    Case "拌合站","施工日期","工程名称","分项工程","施工部位","规格型号"
        If dr.IsNull("拌合站") OrElse dr.IsNull("施工日期") OrElse dr.IsNull("工程名称") OrElse dr.IsNull("分项工程") OrElse dr.IsNull("施工部位") Then
            dr("实耗量") = Nothing
        Else
            Dim filter As String
            filter = "[拌合站] = '" & dr("拌合站") & " ' and [施工日期] = '" & dr("施工日期") & " ' and [工程名称] = '" & dr("工程名称") & " ' And [分项工程] = '" & dr("分项工程") & " ' And [施工部位] = '" & dr("施工部位") & " ' And [强度等级] = '" & dr("强度等级") & " ' "
            dr("实耗量")  = DataTables("混凝土出库明细").SQLCompute("Sum(运输方量)", Filter)
        End If
End Select

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


加好友 发短信
等级:幼狐 帖子:51 积分:491 威望:0 精华:0 注册:2018/1/30 14:13:00
  发帖心情 Post By:2022/6/29 9:10:00 [显示全部帖子]

图片点击可在新窗口打开查看


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


加好友 发短信
等级:幼狐 帖子:51 积分:491 威望:0 精华:0 注册:2018/1/30 14:13:00
  发帖心情 Post By:2022/6/29 9:25:00 [显示全部帖子]

Case "拌合站","施工日期","工程名称","分项工程","施工部位","规格型号"
        If dr.IsNull("拌合站") OrElse dr.IsNull("施工日期") OrElse dr.IsNull("工程名称") OrElse dr.IsNull("分项工程") OrElse dr.IsNull("施工部位") Then
            dr("实耗量") = Nothing
        Else
            Dim filter As String
            filter = "[拌合站] = '" & dr("拌合站") & " ' and [施工日期] = '" & dr("施工日期") & " ' and [工程名称] = '" & dr("工程名称") & " ' And [分项工程] = '" & dr("分项工程") & " ' And [施工部位] = '" & dr("施工部位") & " ' And [强度等级] = '" & dr("强度等级") & " ' "
            dr("实耗量")  = DataTables("混凝土出库明细").SQLCompute("Sum(运输方量)", Filter)
        End If

这段若是统计后台数据该怎么修改

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


加好友 发短信
等级:幼狐 帖子:51 积分:491 威望:0 精华:0 注册:2018/1/30 14:13:00
  发帖心情 Post By:2022/6/29 9:35:00 [显示全部帖子]

我在计划管理中加了这个:
For Each dt As DataTable In DataTables
    If dt.Type = 1 OrElse dt.Type = 3 Then
        If dt.HasChanges Then
            dt.Save()
        End If
    End If
Next  

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


加好友 发短信
等级:幼狐 帖子:51 积分:491 威望:0 精华:0 注册:2018/1/30 14:13:00
  发帖心情 Post By:2022/6/29 9:50:00 [显示全部帖子]

混凝土设计量 表只加载了6月份数据,混凝土出库明细 表修改的5月份数据, 混凝土设计量 表会不会自动加载 混凝土出库明细 表修改5月份数据 对应的数据

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


加好友 发短信
等级:幼狐 帖子:51 积分:491 威望:0 精华:0 注册:2018/1/30 14:13:00
  发帖心情 Post By:2022/6/29 9:56:00 [显示全部帖子]

知道了,谢谢

 回到顶部