Foxtable(狐表)用户栏目专家坐堂 → [求助]统计


  共有3976人关注过本帖平板打印复制链接

主题:[求助]统计

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


加好友 发短信
等级:七尾狐 帖子:1749 积分:11688 威望:0 精华:0 注册:2015/6/22 8:11:00
  发帖心情 Post By:2022/2/11 12:35:00 [只看该作者]

老师好,下面代码标出的计算结果不正确。


Select Case e.DataCol.Name
    Case "姓名","购piao金额","中奖金额","付款金额"
        Dim drs As List(of DataRow)
        Dim Filter As String
        Filter = "[_Identify] >= " & e.DataRow("_Identify") & " And [姓名] = '" & e.DataRow("姓名") & "'"
        drs = e.DataTable.Select(Filter)
        
        For i As Integer = 0 To drs.Count - 1
            Dim dr = drs(i)
            If i = drs.Count - 1 Then
                Filter = "[_Identify] <= " & dr("_Identify") & " And [姓名] = '" & dr("姓名") & "'"
                Dim Val1 As Double = e.DataTable.Compute("Sum(购piao金额)",Filter)
                Dim Val2 As Double = e.DataTable.Compute("Sum(中奖金额)",Filter)
                Dim Val3 As Double = e.DataTable.Compute("Sum(付款金额)",Filter)
                
                dr("累计_购piao") = Val1
                dr("累计_中奖") = Val2
                dr("累计_付款") = Val3
            Else
                dr("累计_购piao") = Nothing
                dr("累计_中奖") = Nothing
                dr("累计_付款") = Nothing
            End If
        Next
        If e.DataCol.Name = "姓名" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            Filter = "[_Identify] > " & e.DataRow("_Identify") & " And [姓名] = '" & e.OldValue & "'"
            drs = e.DataTable.Select(Filter)
            For i As Integer = 0 To drs.Count - 1
                Dim dr = drs(i)
                If i = drs.Count - 1 Then
                    Filter = "[_Identify] <= " & dr("_Identify") & " And [姓名] = '" & dr("姓名") & "'"
                    Dim Val1 As Double = e.DataTable.Compute("Sum(购piao金额)",Filter)
                    Dim Val2 As Double = e.DataTable.Compute("Sum(中奖金额)",Filter)
                    Dim Val3 As Double = e.DataTable.Compute("Sum(付款金额)",Filter)
                    dr() = Val1
                    dr("累计_购piao") = Val2
                    dr("累计_中奖") = Val2
                    dr("累计_付款") = Val3
                Else
                    dr("累计_购piao") = Nothing
                    dr("累计_中奖") = Nothing
                    dr("累计_付款") = Nothing
                End If
            Next
        End If
        Dim dr2 As DataRow = e.DataTable.Find("姓名 is not null","[_Identify] desc")
        Dim V1 = e.DataTable.Compute("Sum(累计_购piao)","累计_购piao > 0")
        Dim V2 = e.DataTable.Compute("Sum(累计_中奖)","累计_中奖 > 0")
        Dim V3 = e.DataTable.Compute("Sum(累计_付款)","累计_付款 > 0")
        
        e.DataTable.ReplaceFor("累计_结欠", Nothing)
        dr2("累计_结欠") = V1 - V2 - V3
End Select

 回到顶部
总数 14 1 2 下一页