Foxtable(狐表)用户栏目专家坐堂 → [求助]如何在表中实现带查找功能的下拉目录树?


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

主题:[求助]如何在表中实现带查找功能的下拉目录树?

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


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
[求助]如何在表中实现带查找功能的下拉目录树?  发帖心情 Post By:2016/10/28 9:40:00 [只看该作者]

http://www.foxtable.com/webhelp/index.htm?page=2961.htm

5、最后在项目事件AfterOpenProject事件中加入代码:

Tables("客户").Cols("县市").DropForm = "窗口1"

能出现下拉目录树,且能检索,但单击鼠标后,却没有向对应列赋值。

e.Form.DropDownBox.Value = tr("县市") ‘这行代码是什么意思?
[此贴子已经被作者于2016/10/28 9:55:48编辑过]

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/28 9:58:00 [只看该作者]

就是向对应列赋值的意思

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


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
回复:(有点蓝)就是向对应列赋值的意思  发帖心情 Post By:2016/10/28 10:34:00 [只看该作者]

If e.Node.Level = 1 Then '如果单击的是第二层节点
    Dim tr As Row = Tables("客户").Current
    Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
    tr("省市") = dr("省市")
    tr("县市") = dr("县市")
    tr("区号") = dr("区号")
    tr("邮编") = dr("邮编")
    e.Form.DropDownBox.Value = tr("县市") 
    e.Form.DropDownBox.CloseDropdown()
End If

tr(县市)=dr(县市),这不已经赋值了?

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/28 10:38:00 [只看该作者]

例子里是向下拉窗口对应的控件赋值

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


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
具体需求描述  发帖心情 Post By:2016/10/28 11:03:00 [只看该作者]

A表有四列,一级、二级、三级、单位
B表有四列,一级、二级、三级、单位
下拉窗口为“级别窗口”

需求是:在A表的单位列,和录入窗口的“单位”控件,输入字符串,即可查询到B表的对应节点。点击节点(B表第三列),将B表的前三列对应赋值到A表的前三列。

目前,可以定位到查询的节点。但鼠标点击后,没有发生赋值动作。

我分析是这段代码有问题:


TreeView控件的NodeMouseClick事件代码设置为:

If e.Node.Level = 1 Then '如果单击的是第二层节点
    Dim tr As Row = Tables("A").Current
    Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
    tr("一级") = dr(
"一级")
    tr("二级") = dr("二级")
    tr("三级") = dr("三级")
    tr("单位") = dr("单位")
    e.Form.DropDownBox.Value = tr("单位"
    e.Form.DropDownBox.CloseDropdown()

End
 If


疑点一是节点的层数,二是 e.Form.DropDownBox.Value = tr("单位")

求教

问题解决了。两个疑点都有错误,已更正。
[此贴子已经被作者于2016/10/28 11:14:22编辑过]

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


加好友 发短信
等级:幼狐 帖子:91 积分:960 威望:0 精华:0 注册:2015/12/7 14:07:00
  发帖心情 Post By:2016/10/28 15:27:00 [只看该作者]

以下是引用有点蓝在2016/10/28 10:38:00的发言:
例子里是向下拉窗口对应的控件赋值

正好看到,问下,如何通过ENTER键对下拉列表赋值,因为是自动查询的,输完第一个字很可能正确的就有了,要用鼠标点麻烦,用回车就搞定最好了!


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


加好友 发短信
等级:婴狐 帖子:2 积分:94 威望:0 精华:0 注册:2016/10/24 17:43:00
  发帖心情 Post By:2016/10/28 15:30:00 [只看该作者]

初来乍到,想了解出口设置,求助

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/28 15:43:00 [只看该作者]

回6楼,参考:http://www.foxtable.com/webhelp/scr/0741.htm

树控件KeyDown事件判断是enter键就执行和鼠标点击一样的代码
If e.KeyCode = Keys.Enter Then
    赋值代码

End
 
If

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/28 15:44:00 [只看该作者]

回7楼。你的出口设置具体指什么,请详细说明

 回到顶部