以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  复杂统计  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=148460)

--  作者:nxqtxwz
--  发布时间:2020/4/8 13:23:00
--  复杂统计

老师您好,想实现学生情况表中的记录发生变化,状况统计表中的数据跟着发生变化,请问老师代码怎么写呢?

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计.zip


--  作者:有点蓝
--  发布时间:2020/4/8 14:12:00
--  
参考:http://www.foxtable.com/webhelp/topics/1472.htm
--  作者:nxqtxwz
--  发布时间:2020/4/8 15:26:00
--  

还是请老师给个例子吧,水平低弄不了。谢谢。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计.zip


--  作者:有点蓝
--  发布时间:2020/4/8 16:22: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
End Select

统计表
If e.DataCol.Name = "当前状态" Then
    Dim Filter As String = "[当前状态] = \'" & e.NewValue & "\'"
    e.DataRow("以下_建档") = DataTables("学生情况").Compute("count(姓名)", Filter & " and 年龄 < 16 and 建档立卡=true")
    e.DataRow("以上_补录") = DataTables("学生情况").Compute("count(姓名)", Filter & " and 年龄 >= 16 and 补录=\'补录\'")
End If