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


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

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

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
[求助] 这样的 列形式 如何生成【目录树】  发帖心情 Post By:2009/7/21 16:37:00 [显示全部帖子]

要求按照 科目级别 生成科目名称目录树级别。(外部数据源)条件:在不分列的前提下:

此主题相关图片如下:mls-+.gif
按此在新窗口浏览图片


科目代码     科目名称     科目级别
1002          银行存款        1
1002.03       招商银行      2

要对应  形成目录树:

+银行存款                      ......... 1级
     -招商银行                 ......... 2级
     -.........                ......... 2级
     -..........               ......... 2级

[此贴子已经被作者于2009-7-21 16:58:50编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/21 17:17:00 [显示全部帖子]

以下是引用wcs在2009-7-21 17:07:00的发言:

把科目代码分为这几列:
一级科目代码、二级科目代码、三级科目代码....
1002             01                01

分列后我知道怎么做的, 只是要有五极科目的话,分列挺影响速度,每次都要引入外部数据表后才能分列、计算赋值。另外明细科目都在不断增加,特别是核算项目、往来都是经常变动(一楼没有项目和往来)。 
如果能直接从外部数据源生成目录树,那会简单的多啊~  就不必每次引入外部数据表再来生成目录树了。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/21 17:28:00 [显示全部帖子]

wcs老兄  我想从外部数据源的科目表中(最多也就几千行)直接生成,而不是从凭证明细表中来生成(这样数据行数十万行),速度问题啊~    

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/21 17:31:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-7-21 17:24:00的发言:
思路:

1、用SqlCommand的ExcuteReader方法,执行“Select 科目代码 From {表名}”,得到一个只包括科目代码列的表
2、用代码增加几列,用于保存不同级别的科目。
3、用代码拆分科目代码到对应的列中。
4、根据这个临时表,生成目录树。

有空我来试一试···


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/21 18:07:00 [显示全部帖子]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "SELECT DISTINCT FNumber,FFullName From {t_Account}"
dt = cmd.ExecuteReader()

临时表名没有,接下来怎么增加列? 请指教~

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/21 18:14:00 [显示全部帖子]

以下是引用kylin在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

哈哈~  看不懂啊···  直接放到窗口的afterload吗?


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/21 19:07:00 [显示全部帖子]

这是外部数据源: 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.rar


在狐表的任何一个表生成目录树即可。谢谢~

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/21 22:27:00 [显示全部帖子]

真心谢谢你,kylin老师。  sql我一点不会啊~  呵呵。 我只好另辟途径了。所以才有另一个帖子:http://www.foxtable.com/dispbbs.asp?boardid=2&Id=3651   本贴就到此了。 再次谢谢!


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/7/22 12:48:00 [显示全部帖子]

谢谢大家~   


 回到顶部