以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码拼装的多列数据字典不显示 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60868) |
||||
-- 作者:TongOk -- 发布时间:2014/12/2 19:43:00 -- 代码拼装的多列数据字典不显示 我在表事件(ChangeEdit)中写了如下代码: If e.Col.Name = "khno"Then Dim dr As Row = e.Row Dim cmd As New SQLCommand Dim dt As DataTable \'cmd.C 不写的话默认是内部数据源 cmd.CommandText = "SELECT personno,name,sex,telephone,gw From {person} Where [companyno] = \'" & dr("khno") &"\'" dt = cmd.ExecuteReader() Dim mdm As New MultiDataMap For Each dr1 As DataRow In dt.DataRows mdm.add(dr1("personno")&"|"&dr1("name")&"|"&dr1("sex")&"|"&dr1("telephone")&"|"&dr1("gw")) Next mdm.ValueCol = 0 mdm.DisplayCol = 1 Tables("order").Cols("linkman").DataMap = mdm.CreateDataMap() End If 我的for循环中能取到我的查询出来的数据,但是为啥在表中显示不出这个多列数据字典呢? 如果我第一次时(第一行数据)触发这个事件生成了字典,那么我在第二次时(第一行数据)触发这个事件生成了字典这两次之间会不会有影响呢?
|
||||
-- 作者:有点甜 -- 发布时间:2014/12/2 19:52:00 -- 我测试没有问题。
Dim dmp As New MultiDataMap |
||||
-- 作者:有点甜 -- 发布时间:2014/12/2 19:52:00 -- 空白,是因为,你动态生成了字典,字典改变以后,不在字典里面的值,就会显示空白的。 |
||||
-- 作者:TongOk -- 发布时间:2014/12/2 21:54:00 -- 我又测试了一下,用表结构的话是可以的。可是我是写在窗口的一个table中就没这个效果,不知道为啥 |
||||
-- 作者:有点甜 -- 发布时间:2014/12/2 21:56:00 -- 具体例子放上来。
|
||||
-- 作者:TongOk -- 发布时间:2014/12/2 21:56:00 -- 如果是在窗口中的Table的话连下拉的效果都没有,可如果在表结构下就有这个效果 |
||||
-- 作者:有点甜 -- 发布时间:2014/12/2 21:57:00 -- 是不是你写错了表名啊,窗口表要这样表示 Tables("窗口1_Table1") |
||||
-- 作者:TongOk -- 发布时间:2014/12/2 22:08:00 -- 在项目属性的事件中关掉第三句代码,订单管理表结构能看到效果。打开第三句代码在窗口中就没有效果。生成多列字典的代码在表属性的ChangeEdit事件中
|
||||
-- 作者:TongOk -- 发布时间:2014/12/2 22:10:00 -- 这个生成多列字典的方式好像是对一列都起作用啊,有没有其它的比较好的方式。上一行的筛选条件和下一行的不一样啊。这样会有影响的啊 |
||||
-- 作者:有点甜 -- 发布时间:2014/12/2 22:14:00 -- 什么意思啊,没有问题啊,不执行这句代码? \'visibleTables("order","订单管理",False) \'隐藏所有表,这个方法写在全局代码中 |