Foxtable(狐表)用户栏目专家坐堂 → 如何在窗口中实现下拉目录树列表?


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

主题:如何在窗口中实现下拉目录树列表?

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


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
如何在窗口中实现下拉目录树列表?  发帖心情 Post By:2012/8/22 15:22:00 [只看该作者]

在主表设置  列属性  -》目录树列表-》目录树表  可是实现 在表格内下拉自动生成一个目录树。

但如果我想在窗体绑定该字段也实现下拉目录树可以吗?


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


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/8/22 15:29:00 [只看该作者]

自行设计下拉目录树

我们知道,在Foxtable只需经过简单的设置,即可在表中使用下拉目录树高效录入数据,无需编写任何代码。
我们也可以抛开内置的功能,自己设计一个下拉目录树来输入数据,不要以为这是多余的,因为:

1、内置的下拉目录树只能在表中使用,不能在窗口使用。
2、内置的下拉目录树有固定的套路,一些特殊需求可能无法满足,例如本例的下拉目录树,增加了刷新功能。

本示例请参考CaseStudy目录下的示例文件“下拉目录树.Table”。

此项目有两个表,分别为客户表和行政区域表,行政区域表为基础数据表,这个表已经输入了全国所有县级行政区域的资料,包括省市、市县、区号、邮编四列。
我们希望在客户表设计一个下图所示的输入窗口,单击县市列这个文本框的下拉按钮,能出现一个下拉目录树,此目录树会列出所有的省市和县市,选择某个县市,会自动输入省市、县市、区号、邮编四列的内容:

同时希望在表中的县市列,也能通过下拉目录树来输入这四列的内容:

 

设计步骤

一、设计下拉窗口

1、新建一个窗口,名为“窗口1”,窗口类型设置为“DropDownForm”。

2、窗口中插入一个TreeView(目录树)控件。

3、窗口的AfterLoad事件设置为:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv
.BuildTree("行政区域","省市|县市")

4、将刷新目录树按钮的代码设置为:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv
.BuildTree("行政区域","省市|县市")

5、TreeView(目录树)的NodeMouseClick事件代码设置为:

If e.Node.Level = 1 Then '如果单击的是第二层节点
    Dim ps() As String = e.Node.FullPath.Split("\")
    Dim tr As Row = Tables("客户").Current
    Dim dr As DataRow = DataTables("行政区域").Find("省市 = '" & ps(0) & "' And 县市 = '" & ps(1) & "'")
    If dr IsNot Nothing Then '如果在行政区域表找到对应的行,则将此行的值写入客户表的当前行.
        tr("省市") = dr("省市")
        tr("县市") = dr("县市")
        tr("区号") = dr("区号")
        tr("邮编") = dr("邮编")
        e.Form.DropDownBox.Value = tr("县市") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    End If
    e.Form.DropDownBox.CloseDropdown()  '关闭下拉目录树
End
If

二、设计录入窗口

1、新建一个窗口,名为“窗口2”,窗口类型为“独立”。

2、插入几个输入框,分别绑定到各字段,其中县市列输入框是DropDownBox,其余各列是TextBox。

2、选择县市输入框,将其下拉窗口设置为“窗口1”:

三、在项目事件AfterOpenProject加入代码:

Tables("客户").Cols("县市").DropForm = "窗口1" '客户表的县市列也采用我们设计的下拉窗口输入数据。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/8/22 16:15:00 [只看该作者]

帮助关于这节的内容,表和窗口都有介绍的:

http://www.foxtable.com/help/topics/2350.htm

 


 回到顶部