Foxtable(狐表)用户栏目专家坐堂 → 用DataTable.Compute计算时错误


  共有12015人关注过本帖树形打印复制链接

主题:用DataTable.Compute计算时错误

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


加好友 发短信
等级:五尾狐 帖子:1015 积分:7119 威望:0 精华:0 注册:2008/9/1 22:34:00
用DataTable.Compute计算时错误  发帖心情 Post By:2010/5/25 15:45:00 [只看该作者]

我在表事件CurrentChanged中设置下面的代码:

With CurrentTable
    Dim r As Row = .Current
图片点击可在新窗口打开查看此主题相关图片如下:sd.jpg
图片点击可在新窗口打开查看

    Dim c As Integer=.Cols("正班工资").Index
    Dim cj As Integer=.Cols("数据状态").Index
    dim v as String=.Text(.Position,C)
    dim sj as String=.Text(.Position,cj)
    Dim Sum As Double
    Sum = .DataTable.Compute("Sum(正班工资)", "[日期] = '" & r("日期")  & "'" And "[工号] = '" & r("工号") & "'")
       
    Dim Str1 As String = "工资信息: 日期: " & r("日期") & "  工号:" & r("工号") & "  姓名:" & r("姓名") & "  正班工资:" & V
    Str1 = Str1 & "      当前行号: " & "( " & (.Position + 1) & " )   数据状态:" & sj & sum
   
    StatusBar.Message1 = Str1
End With

 

提示错误如附件所示,不知错在那里呢?

 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/25 16:04:00 [只看该作者]

如果工号是字符:

 

Sum = DataTable("XXX").Compute("Sum(正班工资)", "[日期] = #" & r("日期")  & "# And [工号] = '" & r("工号") & "'")

 

如果工号是数值

 

Sum = DataTable("XXX").Compute("Sum(正班工资)", "[日期] = #" & r("日期")  & "# And [工号] = " & r("工号") )


 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:7119 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2010/5/25 16:59:00 [只看该作者]

我的代码现在是:

With CurrentTable
    Dim r As Row = .Current
    Dim c As Integer=.Cols("正班工资").Index
    Dim cj As Integer=.Cols("数据状态").Index
    dim v as String=.Text(.Position,C)
    dim sj as String=.Text(.Position,cj)
    Dim Sum As Double
    Sum = .Compute("Sum(正班工资)", "[日期] = #" & r("日期")  & "# And [工号] = '" & r("工号") & "'")       
  
    Dim Str1 As String = "工资信息: 日期: " & r("日期") & "  工号:" & r("工号") & "  姓名:" & r("姓名") & "  正班工资:" & V
    Str1 = Str1 & "      当前行号: " & "( " & (.Position + 1) & " )   数据状态:" & sj & sum
   
    StatusBar.Message1 = Str1
End With

但计算SUM的数量不是按我的条件计的,而是等于本行的正班工资,不是我要的各行合计工资数,请问原因何在呢?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/25 17:09:00 [只看该作者]

Compute不会有问题的,有问题的是你给定的条件,仔细检查。

你的条件是和当前行同一日期和同一工号的“正班工资”汇总。


 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:7119 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2010/5/25 17:15:00 [只看该作者]

呵呵,不好意思,我看错了。


 回到顶部