以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  计算的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43731)

--  作者:blackzhu
--  发布时间:2013/12/13 17:13:00
--  计算的问题
Select Case e.DataCol.Name
    Case "一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月","累计"
        Dim dr As DataRow
        dr = e.DataTable.Find("项目=\'4.经济数据\' And 统计类型=\'7.用水数据(动力科)\' And 数据统计项目=\'用水总计\'")
        If dr IsNot Nothing Then
         dr(e.DataCol.Name) = DataTables("统计表100").Compute("Sum(" & e.DataCol.Name & ")","报表名称=\'用水数据\' And 项目=\'28.用水总计\' And 数据统计项目=\'74.用水总计\'")
        End If
End Select

  像这样的计算 我 大约有 70-80个 计算 , 我现在用表事件做,发现 计算的速度有点慢  需要两三分钟 . 怎么做快一些 ,必须认项统计和计算.

--  作者:狐狸爸爸
--  发布时间:2013/12/13 17:32:00
--  

这个代码似乎有点不符合常规,产寻的条件和统计的条件为啥都是固定的?

如果这样,单独做个统计按钮集中统计吧,编码或者用统计工具统计都行。


--  作者:jianjingmaoyi
--  发布时间:2013/12/13 17:50:00
--  
这个是找关键的数据进行统计



Select Case e.DataCol.Name
    Case "统计项目"
        Dim lx() As String { "一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月","累计"}
        Dim dr As DataRow
        dr = e.DataTable.Find("项目=\'4.经济数据\' And 统计类型=\'7.用水数据(动力科)\' And 数据统计项目=\'用水总计\'")
        If dr IsNot Nothing Then
            For  i As Integer = 0 To lx.Length -1
                dr(lx(i)) = DataTables("统计表100").Compute("Sum(" & lx(i) & ")","报表名称=\'用水数据\' And 项目=\'28.用水总计\' And 数据统计项目=\'74.用水总计\'")
            Next
        End If
End Select

  如果我触动一个列 速度要不要提升些?

--  作者:jianjingmaoyi
--  发布时间:2013/12/13 17:55:00
--  
老大 你这个说法 就是说表事件执行的计算要比按钮执行来的慢些  对不?
--  作者:jianjingmaoyi
--  发布时间:2013/12/13 18:25:00
--  
改成按钮计算 速度快了不是一点点