以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  全部记录下的统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148633)

--  作者:nxqtxwz
--  发布时间:2020/4/11 17:41:00
--  全部记录下的统计

请问老师,下面的代码如果表是在筛选状态下,则统计的是筛选结果中的数据。如何做到不管表处于筛选还是全部记录状态下,都按全部记录来统计呢?

 

Select Case e.DataCol.Name
    Case "当前状态"
        Dim pr As DataRow
               If e.OldValue > ""
            pr = DataTables("控辍统计").Find("当前状态 = \'" & e.OldValue & "\'")
            If pr IsNot Nothing Then
                DataTables("控辍统计").DataCols("当前状态").RaiseDataColChanged(pr)
            End If
        End If
        If e.NewValue > ""
            pr = DataTables("控辍统计").Find("当前状态 = \'" & e.NewValue & "\'")
            If pr IsNot Nothing Then
                DataTables("控辍统计").DataCols("当前状态").RaiseDataColChanged(pr)
            End If
        End If
    Case "年龄","建档立卡","本在本","本在外","辍学原因"
        Dim pr As DataRow
        pr = DataTables("控辍统计").Find("当前状态 = \'" & e.DataRow("当前状态") & "\'")
        If pr IsNot Nothing Then
            DataTables("控辍统计").DataCols("当前状态").RaiseDataColChanged(pr)
        End If


--  作者:有点蓝
--  发布时间:2020/4/11 17:51:00
--  
这个和筛选没有关系。处理的就是所有已经加载的数据。注意在foxtable里筛选和加载是完全不同的2个概念。

如果数据没有完全加载,改为后台处理:http://www.foxtable.com/webhelp/topics/2902.htm

--  作者:nxqtxwz
--  发布时间:2020/4/11 18:23:00
--  

统计这部分太复杂了,我加了两行代码解决不了问题。

还是按照当前加载的数据来统计的。

 

Select Case e.DataCol.Name              \'此代码进行统计
        Case "当前状态"
            Dim pr As DataRow
            Dim g As New Cro ssTableBu ilder("控辍统计", DataTables("控辍保学"))
            g.Fr omSer ver = True
            If e.OldValue > ""
                pr = DataTables("控辍统计").Fin d("当前状态 = \'" & e.OldValue & "\'")
                If pr IsNot Nothing Then
                    DataTables("控辍统计").DataCols("当前状态").RaiseDataColChanged(pr)
                End If
            End If
            If e.NewValue > ""
                pr = DataTables("控辍统计").Fin d("当前状态 = \'" & e.NewValue & "\'")
                If pr IsNot Nothing Then
                    DataTables("控辍统计").DataCols("当前状态").RaiseDataColChanged(pr)
                End If
            End If
        Case "年龄","建档立卡","本在本","本在外","辍学原因"
            Dim pr As DataRow
            Dim g As New CrossTableBuilder("控辍统计", DataTables("控辍保学"))
            g.Fr omSer ver = True
           
            pr = DataTables("控辍统计").Fin d("当前状态 = \'" & e.DataRow("当前状态") & "\'")
            If pr IsNot Nothing Then
                DataTables("控辍统计").DataCols("当前状态").RaiseDataColChanged(pr)
            End If
    End Select


--  作者:有点蓝
--  发布时间:2020/4/12 21:10:00
--  
不是添加统计代码

find改为sqlfind,compute改为sqlcompute


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看