Foxtable(狐表)用户栏目专家坐堂 → 老师,如果用GetValues列出数值,然后把第每个值用来筛选,15行以后的行全部删除怎么写?di


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

主题:老师,如果用GetValues列出数值,然后把第每个值用来筛选,15行以后的行全部删除怎么写?di

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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
老师,如果用GetValues列出数值,然后把第每个值用来筛选,15行以后的行全部删除怎么写?di  发帖心情 Post By:2019/6/25 16:32:00 [只看该作者]

老师,如果用GetValues列出数值,然后把第每个值用来筛选,

select 出GetValues的每个值

select的集合中的大于15行的行全部删除怎么写?


图片点击可在新窗口打开查看此主题相关图片如下:tim截图20190625163626.png
图片点击可在新窗口打开查看


我知道这个效率超低。但是怎么写删出大于 15的行,想不出来。
[此贴子已经被作者于2019/6/25 16:37:44编辑过]

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


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/6/25 16:53:00 [只看该作者]

看不明白,上例子+详细说明

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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
  发帖心情 Post By:2019/6/25 16:58:00 [只看该作者]

你好,我现在写的就是。
我就是想提取表 A 里 A1 列 的不重复的值。
然后用遍历这些值。
遍历出来的集合,第15行以后删掉就可以了。

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


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/6/25 17:00:00 [只看该作者]

是删除行?还是删除集合中的元素?

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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
  发帖心情 Post By:2019/6/25 17:01:00 [只看该作者]

dim drs as list (of datarow) datatable("A").select ("xxx"."xxx")

如何删除这个list 里边15行以后的行?

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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
  发帖心情 Post By:2019/6/25 17:02:00 [只看该作者]

是行

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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
  发帖心情 Post By:2019/6/25 17:28:00 [只看该作者]

还在吗 老师

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


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

1、如果是sqlserver数据库,可以利用 row_number 给你表格编号,然后删除编号大于15的即可;

 

2、如果不是,只能遍历一次数据处理,如

 

Dim idx As String = "-1,"
Dim idx_temp As String = ""
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
Dim cs As String = "第一列"
For Each dr As DataRow In DataTables("表A").Select("", "第一列")
    Dim flag As Boolean = False
    If pdr IsNot Nothing Then
        For Each c As String In cs.split(",")
            If pdr(c) <> dr(c) Then
                flag = True
                Exit For
            End If
        Next
    End If
    If flag OrElse pdr Is Nothing Then
        If count > 5 Then
            idx &= idx_temp
        End If
        count = 1
        idx_temp = ""
    Else
        count += 1
        If count > 5 Then
            idx_temp &= dr("_Identify") & ","
        End If
    End If
   
    pdr = dr
Next

If count > 5 Then
    idx &= idx_temp
End If

Tables("表A").filter = "_Identify in (" & idx.trim(",") & ")"

'Tables("表A").filter = "_Identify not in (" & idx.trim(",") & ")"  '显示唯一值


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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
  发帖心情 Post By:2019/6/25 18:54:00 [只看该作者]

谢谢老师,但是我感觉您好像把我的需求想复杂了写,我只是想这么实现一下:

GetValues找出有几个“科目”
然后:
dim drs as list (of datarow) datatable("成绩表").select ("科目"."名次") 
以名次排序

15名以后的row就直接删掉。


 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=136977

 回到顶部