Foxtable(狐表)用户栏目专家坐堂 → 多选目录树


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

主题:多选目录树

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/12 10:14:00 [显示全部帖子]

比如

 

Dim s1 As String = ""
Dim s2 As String = ""
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
For Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Checked Then
        If nd.Level = 1 Then
            e.Form.DropTable.Current("发证机构") = nd.ParentNode.Text
            s1 = s1 & "," & nd.Text
        ElseIf nd.Level = 2 Then
            s2 = s2 & "," & nd.Text
        End If
    End If
Next
e.Form.DropDownBox.Value = s1.trim(",")
e.Form.DropTable.Current("符合资质焊工") = s2.trim(",")
e.Form.DropDownBox.CloseDropdown


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/12 10:56:00 [显示全部帖子]

以下是引用13775189031在2018/11/12 10:41:00的发言:

其中“所需焊接资质”列的勾选项能不能作为表B中A列的多值字段

 

什么意思,具体一点你的问题。截图说明,实例发上来测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/12 11:22:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/12 12:20:00 [显示全部帖子]

改成这样即可

 

        e.Col.Combolist = DataTables("焊接工艺卡及焊缝清单").GetComboListString("所需焊接资质","工艺卡号 = '" & e.Row("工艺卡号") & "' And 焊接方法 = '" & e.Row("焊接方法") & "'").replace(",", "|")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/12 12:36:00 [显示全部帖子]

修改红色代码

 

e.Col.Combolist = DataTables("焊接工艺卡及焊缝清单").GetComboListString("所需焊接资质","工艺卡号 = '" & e.Row("工艺卡号") & "' And 焊接方法 = '" & e.Row("焊接方法") & "'").replace("/", "|")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/12 14:33:00 [显示全部帖子]

得到数据后,再处理一下,如

 

Dim str As String = "aaa/bbb/ccc/aaa/123/bbb"
Dim ls As new List(Of String)
For Each s As String In str.split("/")
    If ls.Contains(s) = False Then
        ls.add(s)
    End If
Next
str = String.join("|", ls.ToArray)
msgbox(str)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/12 15:35:00 [显示全部帖子]

以下是引用13775189031在2018/11/12 15:34:00的发言:

放datacolchanged事件?

 

1、可以放在你赋值的时候那里处理;

 

2、也可以放在datacolchanged事件,得到数据后去掉重复;

 

3、放在你任意想放的位置。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/12 16:21:00 [显示全部帖子]

以下是引用13775189031在2018/11/12 16:19:00的发言:

我在datacolchanged事件编码如下,为什么不行?

Dim s As String = DataTables("焊接工艺卡及焊缝清单").GetComboListString("符合资质焊工")
output.show(s)

 

1、你这段代码要做什么?

 

2、认认真真理解24楼代码,和你之前的代码合并起来实现功能。

 

3、如果确实不会做,上传具体实例,说明你要做什么。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/14 14:20:00 [显示全部帖子]

Dim str As String = e.datarow("某列")
Dim ls As new List(Of String)
For Each s As String In str.split("/")
    If ls.Contains(s) = False Then
        ls.add(s)
    End If
Next
str = String.join("|", ls.ToArray)
e.datarow("某列") = str


 回到顶部