以文本方式查看主题

-  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
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:有点甜
--  发布时间: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