Foxtable(狐表)用户栏目专家坐堂 → 提取不重复值及计数


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

主题:提取不重复值及计数

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7885 威望:0 精华:0 注册:2016/6/11 11:10:00
提取不重复值及计数  发帖心情 Post By:2019/6/27 22:12:00 [只看该作者]

 


图片点击可在新窗口打开查看此主题相关图片如下:图像 2.jpg
图片点击可在新窗口打开查看
想实现的功能:表是窗口1_Table4(经过筛选的表),提取临标=True,且其月份辅助列不重复的值,同时统计不重复值的个数。

如上面的图片中,想要的结果:201905/1个记录/201906/3个记录

窗口1中一按钮代码如下:

Dim t As Table =e.Form.controls("Table4").Table
Dim r As Row=e.Form.controls("Table4").Table.Current
Dim ss As new List(of String)
Dim str As String
If Tables("入库单").DataTable.DataCols.Contains("月份辅助列")=False  Then
    Tables("入库单").DataTable.DataCols.Add("月份辅助列", Gettype(String),6)
End If
Dim ps As new List(of Integer)
Dim Products As List(Of String)= e.Form.controls("Table4").Table.DataTable.GetValues("月份辅助列",iif(t.filter>"", t.filter, "1=1") & " And 临标=true")
For j As Integer = 0 To Products.Count-1
    ps(j)=t.Compute("count(月份辅助列)",iif(t.filter>"", t.filter, "1=1") & " And 临标=true and 月份辅助列='Products(j) '")
    ss(j)= Products(j)
    str &= "/" & ss(j) & "/" & ps(j) & “个记录”
    str = str.trim("/")
Next
MessageBox.Show(""& str &"", "提示")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/27 22:38:00 [只看该作者]

修改

 

ps(j)=t.Compute("count(月份辅助列)",iif(t.filter>"", t.filter, "1=1") & " And 临标=true and 月份辅助列='" & Products(j) & "'")


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


加好友 发短信
等级:三尾狐 帖子:672 积分:7885 威望:0 精华:0 注册:2016/6/11 11:10:00
  发帖心情 Post By:2019/6/27 23:08:00 [只看该作者]

提示错误:

索引超出范围。必须为非负值并小于集合大小。
参数名: index


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/27 23:18:00 [只看该作者]

Dim t As Table =e.Form.controls("Table4").Table
Dim r As Row=e.Form.controls("Table4").Table.Current
Dim str As String
If Tables("入库单").DataTable.DataCols.Contains("月份辅助列")=False  Then
    Tables("入库单").DataTable.DataCols.Add("月份辅助列", Gettype(String),6)
End If
Dim ps As new List(of Integer)
Dim Products As List(Of String)= e.Form.controls("Table4").Table.DataTable.GetValues("月份辅助列",iif(t.filter>"", t.filter, "1=1") & " And 临标=true")
For j As Integer = 0 To Products.Count-1
    ps(j)=t.Compute("count(月份辅助列)",iif(t.filter>"", t.filter, "1=1") & " And 临标=true and 月份辅助列='" & Products(j) & "'")
    str &= "/" & Products(j) & "/" & ps(j) & "个记录" & vbcrlf
Next
MessageBox.Show(str, "提示")

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7885 威望:0 精华:0 注册:2016/6/11 11:10:00
  发帖心情 Post By:2019/6/27 23:33:00 [只看该作者]

提示同样的错误

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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/6/28 8:54:00 [只看该作者]

For j As Integer = 0 To Products.Count-1
    dim cnt as integer=t.Compute("count(月份辅助列)",iif(t.filter>"", t.filter, "1=1") & " And 临标=true and 月份辅助列='" & Products(j) & "'")
    ps.add(cnt)
    str &= "/" & Products(j) & "/" & cnt & "个记录" & vbcrlf
Next

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


加好友 发短信
等级:三尾狐 帖子:672 积分:7885 威望:0 精华:0 注册:2016/6/11 11:10:00
  发帖心情 Post By:2019/6/28 9:11:00 [只看该作者]

完美解决  谢谢有点蓝/有点甜大神


 回到顶部