Foxtable(狐表)用户栏目专家坐堂 → 输出DataTable中所有列的类型为数字类型的列名


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

主题:输出DataTable中所有列的类型为数字类型的列名

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


加好友 发短信
等级:童狐 帖子:257 积分:2960 威望:0 精华:0 注册:2020/5/21 17:56:00
输出DataTable中所有列的类型为数字类型的列名  发帖心情 Post By:2020/7/9 20:59:00 [只看该作者]

请问,蓝板,输出DataTable中所有列的类型为数字类型的列名,应该怎么做!麻烦了

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


加好友 发短信
等级:童狐 帖子:257 积分:2960 威望:0 精华:0 注册:2020/5/21 17:56:00
  发帖心情 Post By:2020/7/9 21:40:00 [只看该作者]

第一步研究明白了。
For Each Colname As DataCol In DataTables("表名").DataCols
    If Colname.IsNumeric Then
        Output.Show(Colname.name)
    End If
Next


请问第二步应该怎么搞
Dim namess As List(of String)'定义namess集合
For Each Colname As DataCol In DataTables("表A").DataCols '遍历表A的所有列
    If Colname.IsNumeric Then '判断列的属性是数字型
        请问将判断出来的列明放入namess集合的代码应该怎么写
    End If
Next
Output.Show(namess)

[此贴子已经被作者于2020/7/9 22:04:11编辑过]

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


加好友 发短信
等级:童狐 帖子:242 积分:1806 威望:0 精华:2 注册:2018/1/16 20:53:00
  发帖心情 Post By:2020/7/9 22:08:00 [只看该作者]

namess.Add(Colname.Name)

帮助文档多看看,多查查   搜索关键词   集合
[此贴子已经被作者于2020/7/9 22:09:20编辑过]

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


加好友 发短信
等级:童狐 帖子:257 积分:2960 威望:0 精华:0 注册:2020/5/21 17:56:00
  发帖心情 Post By:2020/7/9 22:20:00 [只看该作者]

Dim namess As New List(of String)'定义namess集合
For Each Colname As DataCol In DataTables("电参日报").DataCols '遍历表A的所有列
    If Colname.IsNumeric Then '判断列的属性是数字型
        namess.Add(Colname.Name)
    End If
Next
For Each nm As String In namess
Output.Show(nm)
Next


解决了,前面加入集合成功了,后面输出写的有问题,导致报错

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


加好友 发短信
等级:童狐 帖子:257 积分:2960 威望:0 精华:0 注册:2020/5/21 17:56:00
  发帖心情 Post By:2020/7/9 22:51:00 [只看该作者]

本人小白,刚刚接触狐表。分享今晚的成果,可以实现单击按钮后,自动判断数字类型的列,然后显示合计值,并定位到最后一行的合计数处。

'第一步:遍历当前表的所有列,并将属性是数字型的列名放进集合nms中
Dim dd As String = MainTable.Name
Dim nms As New List(of String)'定义nms集合
For Each Colname As DataCol In DataTables(dd).DataCols '遍历表A的所有列
    If Colname.IsNumeric Then '判断列的属性是数字型
        nms.Add(Colname.Name)
    End If
Next
'第二步:将集合转换成数组nmss
Dim nmss() As String '
nmss = nms.ToArray() 
'第三步:将遍历出来的数字类型的列设置显示合计值
For i As Integer = 0 To nmss.Length -1
Tables("录入窗体_Table1").Cols(nms(i)).GrandTotal = True '指定要合计的列
Next
Tables("录入窗体_Table1").GrandTotal = True '显示合计模式

'第四步:点击合计按钮实现定位到最后一行的合计行
Dim cnt As Integer = Tables("录入窗体_Table1").Rows.Count(True)
Tables("录入窗体_Table1").Select(cnt,0)

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


加好友 发短信
等级:超级版主 帖子:105965 积分:538900 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/9 22:57:00 [只看该作者]

如果集合没有其他作用,直接这样即可:

Dim t as table = Tables("录入窗体_Table1")
For Each Colname As Col In t.Cols '遍历表A的所有列
    If Colname.IsNumeric Then '判断列的属性是数字型
        Colname.GrandTotal = True
    End If
Next
t.GrandTotal = True '显示合计模式
Dim cnt As Integer = t.Rows.Count(True)
t.Select(cnt,0)

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


加好友 发短信
等级:童狐 帖子:257 积分:2960 威望:0 精华:0 注册:2020/5/21 17:56:00
  发帖心情 Post By:2020/7/9 23:04:00 [只看该作者]

还是大神牛逼啊,短短几行代码就能实现功能,我写的简直不能看!学习了!

 回到顶部