Foxtable(狐表)用户栏目专家坐堂 → [求助]目录树问题


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

主题:[求助]目录树问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/15 17:07:00 [只看该作者]

内部函数

 

Dim nd As WinForm.TreeNode = args(0)
Dim dt As DataTable = args(1)
Dim drs As List(of DataRow)
drs = dt.Select("[parentid] = '" & nd.name & "'")
For Each dr As DataRow In drs
    Dim cd As Winform.TreeNode = nd.Nodes.Add(dr("objid"),dr("objjc"))
    Functions.Execute("AddChildren",cd,dt)
Next

 

--------

 

内部函数

 

Dim sql As String = Args(0)  'sql语句


Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.ConnectionName= "ddd"
cmd.CommandText = sql
dt = cmd.ExecuteReader()
Return dt

 

-------

 

代码

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode


Dim sql As String = "Select a.parentid, a.objtype, a.objid, a.objjc, (Select Count(objid) FROM D0200 WHERE parentid = a.objid) As 下级数 " _
 &  " FROM D0200 As a"


Dim dt As DataTable = Functions.Execute("wis",sql)


tr.StopRedraw()
tr.Nodes.Clear
'tr.Nodes.Add("全部")  '这么大的数据量,就不要加全部了
Dim drs As List(of DataRow)
drs = dt.Select("objtype = 1")
For Each dr As DataRow In drs
     nd = tr.Nodes.Add(dr("objid"),dr("objjc"))
     Functions.Execute("AddChildren",nd,dt)
Next
tr.ResumeRedraw()


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


加好友 发短信
等级:一尾狐 帖子:463 积分:4163 威望:0 精华:0 注册:2011/4/5 16:54:00
回复甜大师  发帖心情 Post By:2014/9/15 17:12:00 [只看该作者]

一楼的代码是逛逛大师给的,可以实现目录树录入、筛选等功能。但需添加外部数据表

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/15 17:16:00 [只看该作者]

 参考11楼,改一下。

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


加好友 发短信
等级:一尾狐 帖子:463 积分:4163 威望:0 精华:0 注册:2011/4/5 16:54:00
回复:(有点甜) 参考11楼,改一下。  发帖心情 Post By:2014/9/15 17:43:00 [只看该作者]

我可能没把意思表达清楚,您的代码和逛逛大师的代码都能生成目录树,同样都要设置数据源并添加所需的数据表。如不添加数据表则提示“找不到XXX表。
我的想法是只设置外部数据源,不添加数据表,用后台sql数据生成目录树。不知有无办法实现?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/9/15 17:46:00 [只看该作者]

看2楼利用SQL语句查询出表, 然后一直沿用这个DT变量即可.

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/15 17:55:00 [只看该作者]

以下是引用jygyyl在2014-9-15 17:43:00的发言:
我可能没把意思表达清楚,您的代码和逛逛大师的代码都能生成目录树,同样都要设置数据源并添加所需的数据表。如不添加数据表则提示“找不到XXX表。
我的想法是只设置外部数据源,不添加数据表,用后台sql数据生成目录树。不知有无办法实现?

 

1、数据源那句代码你要改一下

 

cmd.ConnectionName= "ddd"

 

2、就是不需要添加数据表啊,请好好测试


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


加好友 发短信
等级:一尾狐 帖子:463 积分:4163 威望:0 精华:0 注册:2011/4/5 16:54:00
[求助]双击目录树节点代码  发帖心情 Post By:2014/9/16 11:34:00 [只看该作者]

谢谢甜大师,目录树搞定了!双击目录树节点输入数据的代码又不会了,还望赐教!
下面代码可以输入编码,如何同时在目录树下拉单元输入”名称“?
Tables("xx“).Current("编码")=e.Node.Name
e.Form.DropDownBox.CloseDropdown

帮助中通用代码如何修改应用?

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

[此贴子已经被作者于2014-9-16 11:39:37编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/16 11:41:00 [只看该作者]

Tables("xx").Current("编码")=e.Node.Name
Tables("xx").Current("名称")=e.Node.Text
e.Form.DropDownBox.Value = e.Node.Text
e.Form.DropDownBox.CloseDropdown

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


加好友 发短信
等级:一尾狐 帖子:463 积分:4163 威望:0 精华:0 注册:2011/4/5 16:54:00
搞定了,谢谢甜大师的帮助!  发帖心情 Post By:2014/9/16 11:47:00 [只看该作者]

搞定了,谢谢甜大师的热心帮助!

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


加好友 发短信
等级:一尾狐 帖子:463 积分:4163 威望:0 精华:0 注册:2011/4/5 16:54:00
[求助]请教甜老师关于目录树双击节点代码问题  发帖心情 Post By:2014/9/18 8:59:00 [只看该作者]

甜老师,早上好!请教个问题:以下代码能否加入判断,实现:如果在"W01"表的列“HGB003”打开目录树执行下面代码;

Tables("W01").Current("GB003")=e.Node.Name
Tables("W01").Current("HGB003")=e.Node.Text
e.Form.DropDownBox.Value = e.Node.Text
e.Form.DropDownBox.CloseDropdown

如果在"W01"表的列“HGB005”打开目录树则执行下面代码;

Tables("W01").Current("GB005")=e.Node.Name
Tables("W01").Current("HGB005")=e.Node.Text
e.Form.DropDownBox.Value = e.Node.Text
e.Form.DropDownBox.CloseDropdown

 回到顶部
总数 23 上一页 1 2 3 下一页