以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数据字典的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127142)

--  作者:happyft
--  发布时间:2018/11/6 16:50:00
--  数据字典的问题
\'查询后通过临时表生成数据字典
Dim q As new QueryBuilder
q.TableName = "部门查询"
q.ConnectionName = Mydata
q.Se lectString = "SE LECT 部门编码,部门名称,负责人 From {dept}"
q.Build

Dim dmp As New TableDataMap
dmp.DataTable = "部门查询"  \'指定数据来源表
dmp.ValueCol = "部门编码" \'指定取值列
dmp.DisplayCol = "部门名称" \'指定显示列
\'指定下拉列表时显示哪些列的数据
dmp.ListCols = "部门编码,部门名称,负责人"
dmp.Sort = "部门编码" \'指定排序方式
Tables(e.Form.name & "_主表").Cols("部门编码").DataMap = dmp.CreateDataMap() \'生成并设置DataMap

通过上面的代码可以生成数据字典实现后台数据与前面显示的不一样,而且源表名称更改显示也会自动修改,这个功能很好

但是这个datamap只能出现一个简单的下拉录入窗口,

我的录入窗口是通过目录树勾选节点生成的

图片点击可在新窗口打开查看此主题相关图片如下:目录树勾选.jpg
图片点击可在新窗口打开查看

后台的实际数据是011002.02,021023.08这样多个的节点组合值,而前台显示的是要可以识别的中文名称
这样要如何?实查询表中有五个字段,分别是部门编码,部门名称,角色编号,角色名称,组合值

生成目录树根据后台实际值显示为需要的中文名称我都可以实现,只是要如何实现前台显示值与后台不同这个功能?

谢谢!



--  作者:有点甜
--  发布时间:2018/11/7 9:45:00
--  

目录树节点不是有name属性和text属性么?不是可以分别指定其值?

 

具体问题发上来测试。

 


--  作者:HappyFt
--  发布时间:2018/11/7 10:02:00
--  
目录树显示这些没有问题,我的意思是就是勾选操作完成后如何将前台显示我勾选的中文值(由text属性得到,而后台保存的是name的值),即在一列中实现.
比如下面表中这一列

图片点击可在新窗口打开查看此主题相关图片如下:目录树2.jpg
图片点击可在新窗口打开查看
目录树勾选完成后sqRole这一列显示的前台是中文,但后台sql数据库中实际值是0101.01,020203.05,

帮组中datamap可以实现这样的功能,即显示列与取值列不同,,但那个下拉太简单了,
Tables("订单").Cols("客户 ID").DataMap = dmp.CreateDataMap() \'生成并设置DataMap  
只能出现一个有行列组成的下拉窗口,, 如果下拉窗口中是有目录树的情况要怎么实现?


图片点击可在新窗口打开查看此主题相关图片如下:目录树1.jpg
图片点击可在新窗口打开查看





--  作者:有点甜
--  发布时间:2018/11/7 10:17:00
--  

方法一:用两列,一列实际值,一列显示内容。

 

方法二:如果你的显示内容唯一,你也可以直接保存显示内容。需要后台值的时候,再去查找。


--  作者:HappyFt
--  发布时间:2018/11/7 10:33:00
--  
就是不想用两列,那样很多地方更新比较麻烦.而且显示内容不唯一,有重叠的现象.

如果没有更简单的方法的话,那我大概知道该怎么做了,谢谢!

--  作者:有点甜
--  发布时间:2018/11/7 11:05:00
--  
没有简单方法。