Foxtable(狐表)用户栏目专家坐堂 → [求助]datamap的用法


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

主题:[求助]datamap的用法

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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]datamap的用法  发帖心情 Post By:2019/12/14 16:50:00 [只看该作者]

抱歉,用手机写的,无法换行,各位大神将就看 表A中的Kind列(数据类型=数值)使用了数据字典,类型定义为标准,在数据字典中定义了比如三个值 1------办公用品 2------设备 3------书 现在希望用代码定义第4个值 Dim dmp As DataMap = Tables("表A").Cols("Kind").DataMap dmp.add(dmp.count + 1,"专用工具") 在命令窗口中执行了这个代码以后,去Kind列下拉,确实出现了专用工具的选项。 但再去点Kind列,查看列属性的数据字典定义,并没有4----专用工具。 如何让定义一直生效呢?
[此贴子已经被作者于2019/12/14 16:58:25编辑过]

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


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

这个没有办法的。如果要一直有必须在列属性里设置。一般代码设置的只能在运行时有效,关闭项目后也就没有了

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


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

这样使用字典,有些场景颇不方便呀,得多加表,唉

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


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

在全局代码中设定了 Public DMA As new DataMap 在表A的V列,设置了一个字符串 1:北京;2:上海;3:广州;4:上海 自定了一个函数NewDM dim x as new datamap dim dr as datarow = args(0) dim cl as string = args(1) for each x as string in dr(cl).split(";") x.add(cint(x.split(":")(0)),x.split(":")(1)) next return x 在命令窗口执行: DMA.clear dma = function("NewDM",datatables("A").datarows(0),"V") 然后运行 tables("A").cols("XXX").datamap = dma 很奇怪的是:可以在表A中下拉XXX列,然后选中北京,显示的是1,而不是“北京”

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


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

函数NewDM
dim x2 as new datamap
dim dr as datarow = args(0)
dim cl as string = args(1)


for each x as string in dr(cl).split(";")
x2.add(cint(x.split(":")(0)),x.split(":")(1))
next

return x2 

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


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

我的代码跟你的完全一样啊,没看出来有啥子区别哟。前面是用手机敲的,所以看起来有点乱。不知道为什么每次手机输入的都不能换行


在全局代码中设定了 Public DMA As new DataMap
在表A的V列,设置了一个字符串  1:北京;2:上海;3:广州;4:上海

自定了一个函数NewDM
dim x as new datamap
dim dr as datarow = args(0)
dim cl as string = args(1)


for each y as string in dr(cl).split(";")
x.add(cint(y.split(":")(0)),y.split(":")(1))
next

return x 

在命令窗口执行:
DMA.clear
dma = function("NewDM",datatables("A").datarows(0),"V") 

然后运行 tables("A").cols("XXX").datamap = dma

很奇怪的是:可以在表A中下拉XXX列,然后选中北京,显示的是1,而不是“北京”
[此贴子已经被作者于2019/12/16 17:04:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/16 17:01:00 [只看该作者]

肯定不一样啊,请认真核对

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


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

不好意思,小错误,变量x重复,但是结果还是跟之前一样的

下拉仍然只显示1,而不是北京
[此贴子已经被作者于2019/12/16 17:06:01编辑过]

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


加好友 发短信
等级:超级版主 帖子:106046 积分:539323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/16 17:08:00 [只看该作者]

XXX列必须是整数列。

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


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

我设的微整,也应当没问题呀

 回到顶部
总数 13 1 2 下一页