以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口里面的目录树可以使用数据字典吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117799)

--  作者:yangguojun
--  发布时间:2018/4/19 12:28:00
--  [求助]窗口里面的目录树可以使用数据字典吗?
窗口里面的目录树可以使用数据字典吗?
表里使用了数据字典,窗口录入的时候使用的下拉窗口,下拉窗口放了目录树控件进行录入的。

我知道下拉窗口用表格可以实现目录树,但是不想用表格,做了目录树  分层打开的

--  作者:有点甜
--  发布时间:2018/4/19 13:11:00
--  
没看懂你的需求。做个实例发上来说明你要做到的效果。
--  作者:yangguojun
--  发布时间:2018/4/19 13:16:00
--  

1、新建一个窗口,名为“通用目录树”,窗口类型设置为“DropDownForm”。

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

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

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

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

If e.Node.Level = 1 Then \'如果单击的是第二层节点
    Dim tr As Row
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
    If e.Form.DropTable IsNot Nothing Then \'如果下拉窗口是从表中打开
        tr = e.Form.DropTable.Current \'获取此表的当前行
    Else \'如果下拉窗口是通过DropdownBox打开
        Dim nm As String = e.Form.DropDownBox.BindingField \'获取绑定的字段
        nm = nm.Split(".")(0) \'获取绑定的表名
        tr = Tables(nm).Current \'获取此表的当前行
    End If
    tr("省市") = dr("省市")
    tr("县市") = dr("县市")
    tr("区号") = dr("区号")
    tr("邮编") = dr("邮编")
    e.Form.DropDownBox.Value = tr("县市") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    e.Form.DropDownBox.CloseDropdown()

End
If

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

Tables("客户").Cols("县市").DropForm = "通用目录树"
Tables
("雇员").Cols("县市").DropForm = "通用目录树"


比方在上面例子的通用目录树里,如何使用数据字典


--  作者:yangguojun
--  发布时间:2018/4/19 13:32:00
--  

BuildTree(DataTableName, Columns, Filter, Sort)

BuildTree(DataTable, Columns, Filter, Sort)

DataTableName: 数据表名
DataTable:    数据表
Columns:       指定数据列,不同的列之间用符号“|”隔开,例如:产品|客户|雇员”
Filter:        可选参数,指定过滤条件,
请参考表达式的运算符和函数条件表达式
Sort:         可选参数,指定排序列。


只看到有数据列,没有显示列么?


--  作者:有点甜
--  发布时间:2018/4/19 14:28:00
--  

你是想目录树取值和显示不同?

 

如果要这样,你最后往表格里面填入数据的时候,处理一下不就好了?

 

具体问题,上传实例测试,说明要达到的效果。