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


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

主题:多列表数据提取不重复值及计数

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
多列表数据提取不重复值及计数  发帖心情 Post By:2018/7/15 23:55:00 [显示全部帖子]

我的需求是:
1、提取列名中有“市内入围编号_”中的所有不重复的值
2、计算出上面提取的不重复值的个数
3、如何把“市外入围编号”录入进来,谢谢

老师下面这代码有没有办法优化:

Dim dtb As DataTable = DataTables("抽签入围"'提取表

Dim tb As Table = Tables("抽签入围台帐_Table2"'接收表

''''=======清除原有所有数据行======

For i As Integer = tb.Rows.Count -1 To 0 Step -1

    tb.Rows(i).Delete()

Next

 

''===========多列数据中提取不重复的值============

Dim lst As New List(Of Integer)

For Each dc As DataCol In dtb.DataCols

    If dc.Name.StartsWith("市内入围编号_") Then

        For Each dr As DataRow In dtb.DataRows

            If dr(dc.Name) > 0 AndAlso lst.Contains(dr(dc.Name)) = False Then

                lst.Add(dr(dc.Name))

            End If

        Next

    End If

Next

'msgbox(Integer.Join("|", lst.ToArray))

Dim ndr As Row

For Each bh As String In lst   '遍历集合所有数据

    ndr = tb.AddNew()

    ndr("市内_入围编号") = bh   ' CInt(n.Trim(""))

Next

 

''''========提取球号出现次数========

For Each rw As Row In tb.Rows

    If rw.IsNull("市内_入围编号") Then

        rw("市内_次数") = Nothing

    Else

        Dim cnt As Integer = 0

        For Each dc As DataCol In dtb.DataCols

            If dc.Name.StartsWith("市内入围编号_") Then

                For Each dr As DataRow In dtb.DataRows

                    If rw("市内_入围编号") = dr(dc.Name) Then

                        cnt += 1

                    End If

                Next

                rw("市内_次数") = cnt

            End If

        Next

    End If

Next



此主题相关图片如下:qq截图20180715235438.png
按此在新窗口浏览图片



此主题相关图片如下:235535.png
按此在新窗口浏览图片


[此贴子已经被作者于2018/7/16 0:30:18编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/7/16 10:36:00 [显示全部帖子]

''===========多列数据中提取不重复的值============

Dim lst As New List(Of Integer)

For Each dc As DataCol In dtb.DataCols

    If dc.Name.StartsWith("市内入围编号_"Then

        For Each dr As DataRow In dtb.DataRows

            If dr(dc.Name) > 0 AndAlso lst.Contains(dr(dc.Name)) = False Then

                lst.Add(dr(dc.Name))

            End If

        Next

    End If

Next

msgbox(Integer.Join("|", lst.ToArray))

上面代码中写入“Integer”出错,写入“string”又是对的,请问整数型如何处理?


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/7/16 11:18:00 [显示全部帖子]

老师你好:
还有一个问题,1楼仅是“市内入围编号”的提取,但提取“市外入围编号”后,我不想新增行而是直接填入到“市外_入围编号”列中(从第一行开始)这段代码如何调整?谢谢


 回到顶部