Foxtable(狐表)用户栏目专家坐堂 → listbox我想组合显示,但是table里面的数据是datmap


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

主题:listbox我想组合显示,但是table里面的数据是datmap

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


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
listbox我想组合显示,但是table里面的数据是datmap  发帖心情 Post By:2020/2/13 1:35:00 [只看该作者]

我看帮助对listbox事件设置
首先初始化
Dim lb As WinForm.ListBox = e.Form.Controls("lb")
lb.DisplayMember = "employeeState" '设置显示列
lb.ValueMember = "employeeState" '设置取值列
lb.DataSource =  "employeeLog"  '列表项目来自于客户表
lb.DataFilter = "employeeSFId = '" & dr("employeeSFId") & "' and  agreementCode = '" & dr("agreementCode") & "'"
然后事件
e.Value = e.ListItem( "employeeState"  ) & "|" & e.ListItem( "employeeStateTime"  )
但是有个问题
employeeLog表里面employeeState列是这样设置的
mdm.ValueCol = 0
mdm.DisplayCol = 1
Tables( e.Form.TableName ).Cols("employeeState").DataMap = mdm.CreateDataMap()

这样我listbox里面显示 还是之前的mdm.ValueCol的数据,而我要显示mdm.DisplayCol的数据

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


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

字典完整代码给出来看看,如果使用的是MultiDataMap没有办法,如果使用的是DataMap,可以这样

mdm.ValueCol = 0
mdm.DisplayCol = 1
vars("map") = mdm
Tables( e.Form.TableName ).Cols("employeeState").DataMap = mdm.CreateDataMap()

……
e.Value = vars("map")(e.ListItem( "employeeState")) & "|" & e.ListItem( "employeeStateTime"  )

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


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
  发帖心情 Post By:2020/2/13 10:29:00 [只看该作者]

打开窗口后初始化
'''设置工作流代码[flowCode] = 'pro_p'
drs = DataTables("flow").Select("flowCode = 'pro_p' ", "flowPx" )
Tables( e.Form.TableName ).Cols("employeeState").DataMap = Functions.Execute("下拉列表取值显示完善",drs,  "flowPx","flowMain"  )
-------------------------------------------------------------------
下拉列表取值显示完善函数
Dim drs As List(of DataRow ) = args(0)
Dim mdm As New MultiDataMap 
For Each dr As DataRow In drs
    mdm.add( dr(args(1)) & "|" & dr(args(2))    )
Next
mdm.ValueCol = 0
mdm.DisplayCol = 1
Return mdm.CreateDataMap()


可以怎么改改吗


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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/13 10:34:00 [只看该作者]


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


加好友 发短信
等级:二尾狐 帖子:594 积分:4030 威望:0 精华:0 注册:2015/3/10 13:25:00
  发帖心情 Post By:2020/2/13 11:07:00 [只看该作者]

Dim drs As List(of DataRow ) = args(0)
Dim mdm As New DataMap 
For Each dr As DataRow In drs
    mdm.add( "" & dr(args(1)) , dr(args(2))    )
Next

Return mdm

这样就可以了 ,但是我发现个问题找了半天  mdm.add( dr(args(1)) , dr(args(2))    ) ,如果dr(args(1)) 是数字 就不能正常显示,
所以我改成了  mdm.add("" & dr(args(1)) , dr(args(2))    )

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/13 11:26:00 [只看该作者]

这个原因帮助里有说明的

 回到顶部