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


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

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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/15 15:32:00 [显示全部帖子]

可以

 

Dim cmd As New SQLCommand
Dim
dt As DataTable
cmd.ConnectionName =
"行政区域"
cmd.CommandText =
"SELECT DISTINCT 省市 From {行政区域}"
dt = cmd.ExecuteReader


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/15 16:01:00 [显示全部帖子]

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


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


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("[parentid] is null")
For Each dr As DataRow In drs
     nd = tr.Nodes.Add(dr("objid"),dr("objjc"))
     Functions.Execute("AddChildren",nd,dt)
Next
tr.ResumeRedraw()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/15 16:30:00 [显示全部帖子]

以下是引用jygyyl在2014-9-15 16:25:00的发言:
提示“未找到列 [parentid]。”不知道改哪?

 

那你的代码就全部写错了。

 

例子发上来,不清楚你表格的结构是什么。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/15 16:46:00 [显示全部帖子]

 你要的,就是4楼那个啊

 

http://www.foxtable.com/help/index.html?n=2502.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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()


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


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

 参考11楼,改一下。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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、就是不需要添加数据表啊,请好好测试


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/18 9:06:00 [显示全部帖子]

 你可以判断一下列的名称的,参考

 

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

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/18 9:20:00 [显示全部帖子]

无语,加入代码自己看一下。msgbox(e.Form.DropCol.Name)
[此贴子已经被作者于2014-9-18 9:20:18编辑过]

 回到顶部
总数 11 1 2 下一页