以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口"DropBox1"下拉组合框的下拉目录树输入问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=132301)

--  作者:hanzhang98
--  发布时间:2019/3/19 13:14:00
--  [求助]窗口"DropBox1"下拉组合框的下拉目录树输入问题
窗口中有五个文本框TextBox1、TextBox2、TextBox3、TextBox4、TextBox5和一个下拉组合框DropBox1,五个文本框分别绑定"职工"表中"岗码、岗类、部码、部门、工码"五列,下拉组合框绑定"职工"表中"工种"列,同时下拉组合框的下拉窗口为"部门目录树","部门目录树"窗口的AfterLoad事件代码是从项目事件AfterOpenProject中复制的,代码如下:
以下内容为程序代码:

1 \'以下生成下拉选择目录树
2 Dim glbm As New DropTreeBuilder
3 glbm.SourceTable = DataTables("部门") \'指定目录树表
4 glbm.TreeCols = "岗类|部门|工种" \'指定用于生成目录树的列
5 glbm.SourceCols = "岗码|岗类|部码|部门|工码|工种" \'指定数据来源列
6 glbm.ReceiveCols = "岗码|岗类|部码|部门|工码|工种" \'指定数据接收列
7 glbm.TreeSort = "岗码,部码,工码" \'指定数据排序列
8 Tables("职工").Cols("工种").DropTree = glbm.Build() \'指定下拉目录树在"职工"表的"工种"列显示
        想实现的功能: 在点击下拉组合框DropBox1(绑定"职工"表中"工种"列)打开的下拉目录树窗口中点击第三层节点的工种时,能将其对应的"岗码、岗类、部码、部门、工码、工种"六列分别依次写入文本框TextBox1、TextBox2、TextBox3、TextBox4、TextBox5中和下拉组合框DropBox1。并同时修改"职工"表中的相应内容。

        请教老师:代码中的红色部分和蓝色部分如何修改才能实现想要的功能,请老师赐教。谢谢!


[此贴子已经被作者于2019/3/24 9:44:00编辑过]

--  作者:有点甜
--  发布时间:2019/3/19 14:38:00
--  

看看这里

 

http://www.foxtable.com/webhelp/scr/2350.htm

 


--  作者:hanzhang98
--  发布时间:2019/3/19 15:55:00
--  
谢谢老师指点!输入问题已实现。但是下拉目录树的排序比较乱,如何才能按"岗码、部码、工码"这三列来对下拉目录树进行排序。谢谢!
[此贴子已经被作者于2019/3/19 15:55:46编辑过]

--  作者:有点甜
--  发布时间:2019/3/19 16:03:00
--  

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("部门", "岗类|部门|工种", "", "岗码,部码,工码")

 


--  作者:hanzhang98
--  发布时间:2019/3/19 16:41:00
--  
谢老师指点。效果完美。
--  作者:hanzhang98
--  发布时间:2019/3/19 19:15:00
--  
老师又出现一个新问题,就是如果"部门"表是"岗码、岗类、部码、部门、工码、工种"六列,而"职工"表只是"岗类、部门、工种"三列(不需要“岗码、部码、工码”这三列)的时候,出现下拉选择写不进窗口文本框和下拉组合框,也写不进"职工"表。我的代码如下,不知如何修改。请老师帮忙。



出错提示的三行代码写上就提示出错。如果不写上的话,就出现下拉选择写不进窗口文本框和下拉组合框,也写不进"职工"表。

代码要如何修改。请老师帮忙。谢谢!


[此贴子已经被作者于2019/3/19 23:14:30编辑过]

--  作者:有点蓝
--  发布时间:2019/3/19 20:07:00
--  
If e.Node.Level = 2 Then \'如果单击的是第三层节点
    Dim tr As Row = Tables("职工").Current
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
    tr("岗类") = dr("岗类")
    tr("部门") = dr("部门")
    tr("工种") = dr("工种")
    e.form.controls("岗码文本框").text = dr("岗码")      \'此行出错,["岗码"不属于"职工"表]
    tr("部码") = dr("部码")      \'此行出错,["岗码"不属于"职工"表]
    tr("工码") = dr("工码")      \'此行出错,["岗码"不属于"职工"表]
    e.Form.DropDownBox.Value = tr("工种") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    e.Form.DropDownBox.CloseDropdown()
End If

--  作者:hanzhang98
--  发布时间:2019/3/19 20:18:00
--  
谢谢老师。我没有说清楚,也就是说,在"职工"表中没有也不需要"岗码、部码、工码",同样在录入窗口也没有"岗码文本框、部码文本框、工码文本框"。代码要如何改,麻烦老师了。谢谢。
--  作者:有点蓝
--  发布时间:2019/3/19 20:29:00
--  
If e.Node.Level = 2 Then \'如果单击的是第三层节点
    Dim tr As Row = Tables("职工").Current
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
    tr("岗类") = dr("岗类")
    tr("部门") = dr("部门")
    tr("工种") = dr("工种")
    e.Form.DropDownBox.Value = dr"工种") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    e.Form.DropDownBox.CloseDropdown()
End If

--  作者:hanzhang98
--  发布时间:2019/3/19 21:37:00
--  
非常谢谢老师指点。我还是没有说清楚,就是取掉那三行代码后,下拉目录树窗口正常出现,也能在目录树窗口点击选择节点,但就是所选的节点内容写不进录入窗口的“岗类文本框”、“部门文本框”、“工种文本框”,同时也写不进“职工”表的“岗类”、“部门”、“工种”三列。这种情况的代码应如何修改才行。谢谢!