以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]统计错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117629)

--  作者:建筑人生
--  发布时间:2018/4/16 14:49:00
--  [求助]统计错误

    If e.Node.Text <> "" Then
        Select Case e.Node.Level
            Case 0
                Filter = "[日期_年] = \'" & dr("日期_年") & "\'"
            Case 1
                Filter = "[日期_年] = \'" & dr("日期_年") & "\' And [日期_月] = \'" & dr("日期_月") & "\'"
            Case 2
                Filter = "[日期_年] = \'" & dr("日期_年") & "\' And [日期_月] = \'" & dr("日期_月") & "\' And [员工_姓名] = \'" & dr("员工_姓名") & "\'"
        End Select
    End If
 
   
x.Text=Tables("抽成_ftb_choucheng").Compute("Sum(抽成金额)", &  filter
--  作者:有点甜
--  发布时间:2018/4/16 15:07:00
--  
x.Text=Tables("抽成_ftb_choucheng").Compute("Sum(抽成金额)", filter)
--  作者:建筑人生
--  发布时间:2018/4/16 15:24:00
--  
以下是引用有点甜在2018/4/16 15:07:00的发言:
x.Text=Tables("抽成_ftb_choucheng").Compute("Sum(抽成金额)", filter)

为什么有时计算会对,有时不计算呢

NodeMouseClick

 

Dim X As  WinForm.Label= e.Form.Controls("Label1")

Dim Filter As String
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
If riqi.Checked=True Then
    If e.Node.Text <> "" Then
        Select Case e.Node.Level
            Case 0
                Filter = "[日期_年] = \'" & dr("日期_年") & "\'"
            Case 1
                Filter = "[日期_年] = \'" & dr("日期_年") & "\' And [日期_月] = \'" & dr("日期_月") & "\'"
            Case 2
                Filter = "[日期_年] = \'" & dr("日期_年") & "\' And [日期_月] = \'" & dr("日期_月") & "\' And [员工_姓名] = \'" & dr("员工_姓名") & "\'"
        End Select
    End If   
   
Else
    If e.Node.Text <> "" Then
        Select Case e.Node.Level
            Case 0
                Filter = "[员工_姓名] = \'" & dr("员工_姓名") & "\'"
            Case 1
                Filter = "[员工_姓名] = \'" & dr("员工_姓名") & "\' And [日期_年] = \'" & dr("日期_年") & "\'"
            Case 2
                Filter = "[员工_姓名] = \'" & dr("员工_姓名") & "\' And [日期_年] = \'" & dr("日期_年") & "\' And [日期_月] = \'" & dr("日期_月") & "\'"
        End Select
    End If
End If
x.Text=Tables("抽成_ftb_choucheng").Compute("Sum(抽成金额)",Filter )
Tables("抽成_ftb_choucheng").Filter = Filter


图片点击可在新窗口打开查看此主题相关图片如下:003g.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/4/16 15:26:47编辑过]

--  作者:有点甜
--  发布时间:2018/4/16 15:26:00
--  

改成

 

Tables("抽成_ftb_choucheng").Filter = Filter

x.Text=Tables("抽成_ftb_choucheng").Compute("Sum(抽成金额)",Filter)


--  作者:建筑人生
--  发布时间:2018/4/16 15:29:00
--  
以下是引用有点甜在2018/4/16 15:26:00的发言:

改成

 

Tables("抽成_ftb_choucheng").Filter = Filter

x.Text=Tables("抽成_ftb_choucheng").Compute("Sum(抽成金额)",Filter)

现在ok了,为什么,不是一样吗

 


--  作者:有点甜
--  发布时间:2018/4/16 15:32:00
--  

你改成这样也行

 

x.Text=Tables("抽成_ftb_choucheng").DataTable.Compute("Sum(抽成金额)",Filter)

 

改成这样也行

 

Tables("抽成_ftb_choucheng").Filter = Filter

x.Text=Tables("抽成_ftb_choucheng").Compute("Sum(抽成金额)")


Tables的Compute,是对筛选出来的数据进行统计的;DataTables的Compute才是对全部数据统计的


--  作者:建筑人生
--  发布时间:2018/4/16 15:40:00
--  
以下是引用有点甜在2018/4/16 15:32:00的发言:

你改成这样也行

 

x.Text=Tables("抽成_ftb_choucheng").DataTable.Compute("Sum(抽成金额)",Filter)

 

改成这样也行

 

Tables("抽成_ftb_choucheng").Filter = Filter

x.Text=Tables("抽成_ftb_choucheng").Compute("Sum(抽成金额)")


Tables的Compute,是对筛选出来的数据进行统计的;DataTables的Compute才是对全部数据统计的

明白了,谢谢