以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  要在录入窗口建一个下拉目录树,而录入接收列只要一列数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44766)

--  作者:Bin
--  发布时间:2014/1/8 15:23:00
--  
不是很懂你想实现的效果.
--  作者:Bin
--  发布时间:2014/1/8 15:34:00
--  
你的意思是根据中类,小类生成目录树下拉窗口,点击其中一个节点,值带到输入框?
--  作者:Bin
--  发布时间:2014/1/8 15:45:00
--  
上例子,把你做的发上来看看.
--  作者:狐狸爸爸
--  发布时间:2014/1/8 15:47:00
--  

就是,纸上不谈兵,直接做个例子发上来,几分钟就可以搞定。

如果没有例子,至少也得贴出你的代码,说明在什么事件写了什么代码,目的是什么,出现了什么错误。

[此贴子已经被作者于2014-1-8 15:47:26编辑过]

--  作者:狐狸爸爸
--  发布时间:2014/1/8 15:57:00
--  
呵呵,文件收到,你这么多窗口,请说明一下是哪一个表的哪一个窗口吧,否则让别人一个一个去比较去找?
--  作者:狐狸爸爸
--  发布时间:2014/1/8 16:13:00
--  
行业这个下拉窗口的NodeMouseClick事件代码改为:


Dim tr As Row = Tables("申请信息").Current
Dim dr As DataRow = e.node.DataRow
If dr IsNot Nothing Then
     e.Form.DropDownBox.Value = dr("门类") & "|" & dr("大类") & "|" & dr("中类") & "|" & dr("小类")
End If
e.Form.DropDownBox.CloseDropdown()

相关知识:
http://www.foxtable.com/help/topics/2689.htm


--  作者:lsy
--  发布时间:2014/1/8 16:13:00
--  

猜猜楼主确切的意思:

小类可能有,也可能没有。

小类有,选小类。

小类无,选中类。

 

总之是选最后一级。

 

是不是?


--  作者:狐狸爸爸
--  发布时间:2014/1/8 16:18:00
--  
17楼的代码可以随意组合,理解楼主的问题真的很难,表述得很不严谨。

如果是lsy所言,代码改为:

Dim tr As Row = Tables("申请信息").Current
Dim dr As DataRow = e.node.DataRow
If dr IsNot Nothing Then
     if dr.isnull("小类") =  False
       e.Form.DropDownBox.Value = dr("小类")
     Elseif dr.isnull("中类") =  False
       e.Form.DropDownBox.Value = dr("中类")
     Elseif dr.isnull("大类") =  False
       e.Form.DropDownBox.Value = dr("大类")
    else
       e.Form.DropDownBox.Value = dr("门类")
    end if
End If
e.Form.DropDownBox.CloseDropdown()

你看看同样的问题,lsy表述得多么清晰易懂。

问题回复的质量,多数时候取决于你提问的质量。
[此贴子已经被作者于2014-1-8 16:19:41编辑过]

--  作者:狐狸爸爸
--  发布时间:2014/1/8 16:23:00
--  
这样更好一些:

Dim tr As Row = Tables("申请信息").Current
Dim dr As DataRow = e.node.DataRow
If dr IsNot Nothing Then
    If e.node.level = 3 Then
        e.Form.DropDownBox.Value = dr("小类")
    ElseIf e.node.level = 2 Then
        e.Form.DropDownBox.Value = dr("中类")
    ElseIf e.node.level = 1 Then
        e.Form.DropDownBox.Value = dr("大类")
    Else
        e.Form.DropDownBox.Value = dr("门类")
    End If
End If
e.Form.DropDownBox.CloseDropdown()

--  作者:lsy
--  发布时间:2014/1/8 16:24:00
--  

If e.Node.Nodes.Count = 0 Then
    e.Form.DropDownBox.Value = e.Node.Name

Else

    e.Form.DropDownBox.Value = Nothing
End If
e.Form.DropDownBox.CloseDropdown()

[此贴子已经被作者于2014-1-8 16:26:32编辑过]