Foxtable(狐表)用户栏目专家坐堂 → [求助]读取列属性中的标准数据字典


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

主题:[求助]读取列属性中的标准数据字典

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]读取列属性中的标准数据字典  发帖心情 Post By:2021/11/20 19:29:00 [只看该作者]

表X中的A列,在列属性的基本属性-字典-数据字典中设为标准,然后在数据字典中设置数据=1、2、3、4、5、……,显示值分别为甲、乙、丙、丁、戊、……

能不能通过代码把它读出来?

[此贴子已经被作者于2021/11/20 19:29:37编辑过]

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


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

Dim dmp As DataMap = Tables("表X").Cols("A列").DataMap
For Each key As String In dmp.keys
    Output.Show(key & "=" & dmp(key))
Next

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/11/22 9:47:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:字典读不出来.png
图片点击可在新窗口打开查看
执行的时候,为什么键可以读出来,值读不出来哟
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/22 10:05:00 [只看该作者]

列类型的问题,这个列是微整形

For Each key As Byte In dmp.keys
    Output.Show(key & "=" & dmp(key))
Next

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/11/23 17:12:00 [只看该作者]

Dim ct As String = "Kind"
Dim ck As String = DataTables("CS").DataCols(ct).datatype.Name   '得到ct列的数据类型

Dim dmp As DataMap = Tables("CS").Cols(ct).DataMap
Output.Show(ct & "列有数据字典=" &(dmp IsNot Nothing))
If dmp IsNot Nothing Then
    Dim dicx As new Dictionary(of object ,String)     ’Dim dicx As new Dictionary(of ck,String)  ,这里使用ck就会报错,本意是想精确引用数据类型,后来发现有错误,只能用了object,不报错了
    For Each key As object In dmp.keys      ’For Each key As ck In dmp.keys,这里使用ck就会报错,本意是想精确引用数据类型,后来发现有错误,只能用了object,不报错了
        dicx.Add(key,dmp(key))
    Next
    
    For Each k As object In dicx.Keys       For Each key As ck In dicx.Keys,这里使用ck就会报错,本意是想精确引用数据类型,后来发现有错误,只能用了object,不报错了
        Output.Show(k & "----" & dicx(k))
    Next 
End If


用object可以执行,不过可能效率上会低一些。如果要精确引用数据列类型,该怎么用?

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


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/23 17:14:00 [只看该作者]

只能用object

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


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/11/23 17:39:00 [只看该作者]

啊,误打误撞,居然撞对了图片点击可在新窗口打开查看

 回到顶部