以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 多选目录树窗口问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120297) |
||||
-- 作者:13775189031 -- 发布时间:2018/6/12 11:00:00 -- 多选目录树窗口问题 窗口afterload事件 Dim cmd As New SQLCommand Dim dt As DataTable Dim cmb As WinFor m.ComboBox cmd.CommandText = "SELECT DISTINCT 发证机构,考试合格项目代号,焊工姓名 Fro m {焊工资质清单}" dt = cmd.ExecuteReader()
Dim trv As WinFor m.TreeView = e.For
m.Controls("TreeView1") trv.BuildTree(dt,"发证机构|考试合格项目代号|焊工姓名")
dropdownopened事件 Dim trv As WinFor m.TreeView = e.For
m.Controls("TreeView1") For Each nd As WinFor m.TreeNode In
trv.AllNodes nd.checked = False Next
click事件 Dim s As String = ""m.TreeNode
In trv.AllNodes If nd.Checked Then s = s &
"," & nd.Text End If Next e.For m.DropDownBox.Value =
s.trim(",") e.For m.DropDownBox.CloseDropdown
afteroperproject事件 Tables("焊接工艺卡清单").Cols("焊接方法一_所需焊接资质").DropFor
m = "所需焊接资质项目代号" Tables("焊接工艺卡清单").Cols("焊接方法二_所需焊接资质").DropFor
m = "所需焊接资质项目代号" Tables("焊接工艺卡清单").Cols("焊接方法三_所需焊接资质").DropFor
m = "所需焊接资质项目代号"
不知道哪里有问题,窗口有时会不显示,总要把项目事件中afteroperproject重新打开一遍才可以!
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/12 11:03:00 -- 你是不是按住ctrl不放打开项目的?这种情况不会执行任何代码,所以设置会无效。
你是不是还对这些列【焊接方法一_所需焊接资质】设置了别的代码,如 combolist = "xxxx" 这个时候,列会显示下拉项目而不会显示下拉窗口了。 |
||||
-- 作者:13775189031 -- 发布时间:2018/6/12 11:20:00 -- 明白了! |
||||
-- 作者:13775189031 -- 发布时间:2018/6/12 11:22:00 -- 现在想要把选中的焊工姓名作为其他列的多值字段,该怎么办? |
||||
-- 作者:有点甜 -- 发布时间:2018/6/12 11:51:00 -- prepareEdit事件
If e.col.name = "第一列" Then e.col.combolist = e.row("焊接方法一_所需焊接资质").replace(",", "|") End If
如果还有问题,做个例子上来说明 |
||||
-- 作者:13775189031 -- 发布时间:2018/6/13 11:35:00 -- 没问题! 可不可以只选择第二级的“考试合格项目代号”,不勾选“焊工姓名”,在其他列显示“考试合格项目代号”下面焊工姓名
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/13 12:32:00 -- 以下是引用13775189031在2018/6/13 11:35:00的发言:
没问题! 可不可以只选择第二级的“考试合格项目代号”,不勾选“焊工姓名”,在其他列显示“考试合格项目代号”下面焊工姓名
看不懂你的需求,做一个实例发上来说明。 |
||||
-- 作者:13775189031 -- 发布时间:2018/6/13 16:39:00 -- If e.col.name = "满足焊工资质" Then e.col.combolist = e.row("所需焊接资质").replace(",", "|") End If 按照以上命令我必须在“所需焊接资质”勾选焊工姓名, "满足焊工资质" 列才能出现焊工姓名选项; 但现在“所需焊接资质”列要求显示内容为“考试合格项目代号”,不能是焊工姓名; 也就是说要求“所需焊接资质”只勾选“考试合格项目代号”,但 "满足焊工资质" 列显示勾选“考试合格项目代号”下面的焊工姓名 |
||||
-- 作者:13775189031 -- 发布时间:2018/6/13 16:39:00 --
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/13 16:51:00 -- If e.Col.name = "满足资质焊工" Then Dim str As String = e.Row("所需焊接资质").replace(",", "\',\'") e.Col.combolist = DataTables("焊工资质清单").GetComboListString("焊工姓名", "考试合格项目代号 in (\'" & str & "\')") End If |