Foxtable(狐表)用户栏目专家坐堂 → 求救:表达式计算列计数的问题


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

主题:求救:表达式计算列计数的问题

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


加好友 发短信
等级:婴狐 帖子:29 积分:263 威望:0 精华:0 注册:2011/11/5 22:08:00
求救:表达式计算列计数的问题  发帖心情 Post By:2011/11/30 22:27:00 [只看该作者]

我有一个表A,有多列是一个产品的号码,有一个合计列,自动计算当这些号码列增加或减少时的个数,表达式怎么写?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/11/30 23:44:00 [只看该作者]

将这列设为表达工列,表达式为:

 

iif([空轴_号码_A] Is Null,0,1)+
iif([空轴_号码_B] Is Null,0,1)+
iif([空轴_号码_C] Is Null,0,1)+
iif([空轴_号码_D] Is Null,0,1)+
iif([空轴_号码_E] Is Null,0,1)+
iif([空轴_号码_F] Is Null,0,1)+
iif([空轴_号码_G] Is Null,0,1)+
iif([空轴_号码_H] Is Null,0,1)

 

如此照样将其它列加进去就是了


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


加好友 发短信
等级:婴狐 帖子:29 积分:263 威望:0 精华:0 注册:2011/11/5 22:08:00
  发帖心情 Post By:2011/12/1 0:01:00 [只看该作者]

这段代码在datacolchanging中执行后提示框关不了

If e.DataCol.Name = "经轴号" Then
    Dim dr As DataRow
    Dim Multi As String = "空轴_号码_A|空轴_号码_B|空轴_号码_C|空轴_号码_D|空轴_号码_E|空轴_号码_F|空轴_号码_G|空轴_号码_H|空轴_号码_I|空轴_号码_J|空轴_号码_1|空轴_号码_2|空轴_号码_K|空轴_号码_L|空轴_号码_M|空轴_号码_N|空轴_号码_O|空轴_号码_3|空轴_号码_5|空轴_号码_4"
    Dim Values() As String
    Values = Multi.split("|")
    For Index As Integer = 0 To Values.Length - 1
        dr = DataTables("表A").Find(Values(Index) & " = '" & e.NewValue & "'")
        If dr Is Nothing Then
                MessageBox.Show("您输入的轴号不存在!")
        e.Cancel = True
       End If
    Next
End If


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/12/1 0:15:00 [只看该作者]

If e.DataCol.Name = "经轴号" Then
    If e.DataRow.IsNull("经轴号") = False Then
        Dim n As Integer
        Dim dr As DataRow
        Dim Multi As String = "空轴_号码_A|空轴_号码_B|空轴_号码_C|空轴_号码_D|空轴_号码_E|空轴_号码_F|空轴_号码_G|空轴_号码_H|空轴_号码_I|空轴_号码_J|空轴_号码_1|空轴_号码_2|空轴_号码_K|空轴_号码_L|空轴_号码_M|空轴_号码_N|空轴_号码_O|空轴_号码_3|空轴_号码_5|空轴_号码_4"
        Dim Values() As String
        Values = Multi.split("|")
        For Index As Integer = 0 To Values.Length - 1
            dr = DataTables("表A").Find(Values(Index) & " = '" & e.NewValue & "'")
            If dr IsNot Nothing Then
                dr(Values(Index)) = Nothing
            Else
                n = n + 1
            End If
        Next
        If n > Values.Length -1 Then
            MessageBox.Show("您输入的轴号不存在!")
            e.DataRow("经轴号") = Nothing
        End If
    End If
End If
[此贴子已经被作者于2011-12-1 0:20:52编辑过]

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


加好友 发短信
等级:婴狐 帖子:29 积分:263 威望:0 精华:0 注册:2011/11/5 22:08:00
  发帖心情 Post By:2011/12/1 0:30:00 [只看该作者]

在datacolchanged中执行提示错误n=n+1

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/1 8:16:00 [只看该作者]

我测试没有问题

[此贴子已经被作者于2011-12-1 8:18:26编辑过]

 回到顶部