全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1658
推到 Plurk!
推到 Facebook!

如何把图中的table转到treeview中?

尚未結案
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-23 10:00:37 IP:125.121.xxx.xxx 訂閱
如图,我想把tabel中的内容转到treeview中,格式如图所示,其中table中的栏位是: dqdm(地区代码),dqmc(地区名称),zdqcd(子地区长度),zdqsl(子地区数量),我初学,想破头也做不出来,请各位大大帮忙,不胜感激之至!
附加檔案:480e9845a9233_1.jpg
編輯記錄
luowy651 重新編輯於 2008-04-23 10:28:00, 註解 無‧
luowy651 重新編輯於 2008-04-23 10:32:36, 註解 無‧
luowy651 重新編輯於 2008-04-23 10:33:14, 註解 無‧
JustinShen
中階會員


發表:22
回覆:104
積分:80
註冊:2003-09-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-04-23 23:53:07 IP:58.216.xxx.xxx 訂閱
使用 TreeView.Items.AddChild() 函数 就可以了,用一个循环遍历以下数据表,在循环内判断Node应该在什么位置,取得他的老爹Node,他就可以出生了。
------
====================
我为一切作努力!
Justin Shen

P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-04-24 00:03:26 IP:61.67.xxx.xxx 未訂閱
參考這個吧, IBQ_Menu 是一個Table, 裡面有很多是我的用語, 不用理會, 只要看 TreeView 如何運用, 再搭配你自己的Table 的層次判斷即可
[code delphi]
procedure TForm_UserFunc.FormCreate(Sender: TObject);
var mid: integer;
root, croot: TTreeNode;
begin
muid:= Form_UserIB.IBQ_UsersUSERID.AsString;
Table_Func.DatabaseName:= U_VarDef.SYSalias;
Table_Func.Open;
IBQ_Menu.Open;
TreeView1.Items.BeginUpdate;
TreeView1.Items.Clear;
root:= nil;
while not IBQ_Menu.Eof do begin
mid:= StrtoIntDef(IBQ_MenuMENUID.AsString,0);
if mid<>0 then begin
// 讀取每一作業項目有多少項功能設定
Table_Func.Filter:= '(MENUID=''' InttoStr(mid) ''') and '
'(PROG=' '''通用'' or PROG=''' U_VarDef.progid ''')';
// 加入 root
if (mid<>0) and ((mid mod 100)=0) then begin
root:= TreeView1.Items.Add(nil,IBQ_MenuMENUNAME.AsString);
root.SelectedIndex:= IBQ_MenuMENUID.AsInteger;
end
// 加入 subTree
else begin
croot:= TreeView1.Items.AddChild(root,IBQ_MenuMENUNAME.AsString
format('[%.2d]',[Table_Func.RecordCount]));
croot.SelectedIndex:= IBQ_MenuMENUID.AsInteger;
end;
end;
IBQ_Menu.Next;
end;
TreeView1.Items.EndUpdate;
TreeView1.ShowButtons:= True;
TreeView1.FullExpand;
TreeView1.TopItem:= TreeView1.Items.Item[0];
end;

[/code]
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-04-24 07:05:32 IP:219.82.xxx.xxx 訂閱
感谢两位大大的关注,小弟十分感谢!
因小弟初学,对两位大大的方法还要再消化一下
如果大大能直接对我这个例程给以code ,那小弟就更容易理解了
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-04-29 10:17:35 IP:125.121.xxx.xxx 訂閱
我现在只能做出第一层,code如下,能否请大大们帮帮我,在下初学,惶恐!
var
rootnode: TTreeNode;
i:integer;
begin
Screen.Cursor := crSQLWait;

fmjczl_kszl.adoquery1.close;
fmjczl_kszl.adoquery1.sql.clear;
fmjczl_kszl.adoquery1.sql.add('IF EXISTS (SELECT *') ;
fmjczl_kszl.adoquery1.sql.add('FROM sysobjects') ;
fmjczl_kszl.adoquery1.sql.add('WHERE id = object_id(N' '''' '[dbo].[jczl_dqzl]' '''' ') AND OBJECTPROPERTY(id,') ;
fmjczl_kszl.adoquery1.sql.add('N' '''' 'IsUserTable' '''' ') = 1) DROP TABLE [dbo].[jczl_dqzl]') ;
fmjczl_kszl.adoquery1.sql.add('SELECT * into jczl_dqzl') ;
fmjczl_kszl.adoquery1.sql.add('FROM');
fmjczl_kszl.adoquery1.sql.add(server);
fmjczl_kszl.adoquery1.sql.add('.');
fmjczl_kszl.adoquery1.sql.add(zt);
fmjczl_kszl.adoquery1.sql.add('.dbo.dqzl');
fmjczl_kszl.adoquery1.sql.add('where dqqc is not null');
fmjczl_kszl.adoquery1.execsql;
fmjczl_kszl.adoquery1.close;
fmjczl_kszl.adoquery1.sql.clear;
fmjczl_kszl.adoquery1.Active:=false;
fmjczl_kszl.adoquery1.sql.add('SELECT * from jczl_dqzl') ;
fmjczl_kszl.adoquery1.Active:=true;

fmjczl_kszl.treeview1.items.Clear;
rootnode:=fmjczl_kszl.treeview1.items.Addfirst(nil,'所有渠道');
fmjczl_kszl.adoquery1.First;
for i:=0 to fmjczl_kszl.adoquery1.recordcount-1 do
begin
fmjczl_kszl.treeview1.Items.addchild(rootnode,fmjczl_kszl.adoquery1.fieldvalues['dqmc'] ' (' fmjczl_kszl.adoquery1.fieldvalues['dqdm'] ' )');
// treeview1.Items.addchild(rootnode,adoquery1.fieldvalues['dqdm']);
fmjczl_kszl.adoquery1.Next;
end;
fmjczl_kszl.dbgrid1.ReadOnly:=true;
// treeview1.FullExpand;
rootnode.Expanded:=true;
Screen.Cursor := crDefault;
系統時間:2024-05-17 7:22:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!