Foxtable(狐表)用户栏目专家坐堂 → [求助] 这样的 列形式 如何生成【目录树】


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

主题:[求助] 这样的 列形式 如何生成【目录树】

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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19229 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/7/21 17:56:00 [显示全部帖子]

这个可以一步到位,使用存储过程,呵呵
 

字段FKMCode,FKMName,FKMLevel(科目代码,科目名称,科目级别) 表名 TB_KM,构造如下临时数据表

Select a.FKMCode1,FKMName1,a.FKMCode2,FKMName2,FKMCode3, FKMName3

from

(

  Select a.FKMCode1,FKMName1,FKMCode2,FKMName2

  from

     (

     Select FKMCode FKMCode1,FKMName FKMName1

     from TB_KM where FKMLevel=1

     )a

  Left Join

     (

     Select substring(FKMCode,1,4) FKMCode1,

          FKMCode FKMCode2,FKMName FKMName2,FKMLevel FKMLevel2

      from TB_KM where FKMLevel=2

     )b

  on a.FKMCode1=b.FKMCode1

)a

left join

(

  Select substring(FKMCode,1,4) FKMCode1,substring(FKMCode,1,7) FKMCode2,

        FKMCode FKMCode3,FKMName FKMName3,FKMLevel FKMLevel3

  from TB_KM where FKMLevel=3

)b

on a.FKMCode1=b.FKMCode1 and a.FKMCode2=b.FKMCode2

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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19229 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/7/21 18:35:00 [显示全部帖子]

不是三言两语能说得清的

你传个文件来,我给你搞定

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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19229 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/7/21 21:53:00 [显示全部帖子]

因为不支持复杂的嵌套语句,只能采用存储过程,外挂只能选择SQL Server数据库,请您自己完成数据库,

 

Select a.科目代码1,科目名称1,a.科目代码2,科目名称2,科目代码3, 科目名称3

from

(

  Select a.科目代码1,科目名称1,科目代码2,科目名称2

  from

     (

     Select 科目代码 科目代码1,科目名称 科目名称1

     from T_ACCOUNT where 科目级别=1

     )a

  Left Join

     (

     Select substring(科目代码,1,4) 科目代码1,

          科目代码 科目代码2,科目名称 科目名称2,科目级别 科目级别2

      from T_ACCOUNT where 科目级别=2

     )b

  on a.科目代码1=b.科目代码1

)a

left join

(

  Select substring(科目代码,1,4) 科目代码1,substring(科目代码,1,7) 科目代码2,

        科目代码 科目代码3,科目名称 科目名称3,科目级别 科目级别3

  from T_ACCOUNT where 科目级别=3

)b

on a.科目代码1=b.科目代码1 and a.科目代码2=b.科目代码2


将以上代码建立一个存储过程,然后

Dim cmd As New SQLCommand
cmd.C
Dim dt As DataTable
cmd.CommandText ="Excute 存储过程名"
dt = cmd.ExecuteReader()
Dim tv As WinForm.TreeView
tv =e.Form.Controls("TreeView1")
tv.BuildDataTree(dt, "", "科目名称1", "科目名称2", "科目名称3")

 回到顶部