Foxtable(狐表)用户栏目专家坐堂 → [求助]交叉统计后,手工增加列无法求值(如果有空值被求和,直接为空,求不出)


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

主题:[求助]交叉统计后,手工增加列无法求值(如果有空值被求和,直接为空,求不出)

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4464 威望:0 精华:0 注册:2014/3/4 21:20:00
[求助]交叉统计后,手工增加列无法求值(如果有空值被求和,直接为空,求不出)  发帖心情 Post By:2020/9/24 14:31:00 [只看该作者]

如题: x1,x2,y1,y2 如果有一个空值,那么分母出来的值就是空值. 如何解决.
代码如下:

Dim x1 As String
Dim x2 As String
Dim x7 As String
Dim y1 As String
Dim y2 As String

Dim r1 As DataRow
For Each dc As DataCol In tab.DataTable.DataCols
    If dc.Caption.Contains("磷酸") AndAlso dc.Caption.Contains("广东")  Then
        x1 = dc.Name
    ElseIf dc.Caption.Contains("硫酸") AndAlso dc.Caption.Contains("广东")  Then
        x2 = dc.Name

    ElseIf dc.Caption.Contains("磷酸") AndAlso dc.Caption.Contains("上海")  Then
        y1 = dc.Name
    ElseIf dc.Caption.Contains("硫酸") AndAlso dc.Caption.Contains("上海")  Then
        y2 = dc.Name

    ElseIf dc.Caption.Contains("铝材") Then
        x7 = dc.Name
    End If   
Next
'上面是交叉统计后得到的表,下面是手工增加的列.
tab.DataTable.DataCols.Add("工厂_铝比磷硫",Gettype(Double),"" & x7 & "/(" & x1 & "+" & x2 & "+" & y1 & "+" & y2 & ")")


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


加好友 发短信
等级:狐神 帖子:4627 积分:33767 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2020/9/24 14:43:00 [只看该作者]

判断一下是否为空值
例如:"isnull(" & x1 & ",0)"
[此贴子已经被作者于2020/9/24 14:51:38编辑过]

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4464 威望:0 精华:0 注册:2014/3/4 21:20:00
  发帖心情 Post By:2020/9/24 14:50:00 [只看该作者]

新增加的字段,计算公式里是字符形式的,试了,无法做判断
[此贴子已经被作者于2020/9/24 14:50:13编辑过]

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


加好友 发短信
等级:狐神 帖子:4627 积分:33767 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2020/9/24 14:52:00 [只看该作者]

例如:"isnull(" & x1 & ",0)"

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


加好友 发短信
等级:一尾狐 帖子:480 积分:4464 威望:0 精华:0 注册:2014/3/4 21:20:00
  发帖心情 Post By:2020/9/24 14:59:00 [只看该作者]

搞定, 楼上的方法可行,多谢.

 回到顶部