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

TreeView問題_ -------- 發表那裏是誤放 -------------

尚未結案
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-04 16:37:36 IP:61.218.xxx.xxx 未訂閱
首先很抱歉在之前有放錯位置了,放到發表去了,請原諒我的迷糊 各位大大: 有關TreeView是我想嘗試的動作, 以下是我三個TABLE,(FADMMA_圖一,FADMMB_圖二,FADMMC_圖三)    (圖一) (圖二) (圖三) 做出來效果(圖四) (圖四) 但我想做成三層的(自己剪貼出來的) ===============================
引言: 以下是程式部份: procedure TFTreeView.createnode(nd: ttreenode); var r1:prec; nd1:ttreenode; dt1,dt2 : tadoquery; begin if nd=nil then begin dt1 := TADOQuery.Create(Application); dt1.Connection := DM.conn1; dt1.SQL.add('select MA001,MA002 from FADMMA'); dt1.sql.add(' order by MA001'); dt1.Open; dt1.First; while not dt1.Eof do begin new(r1); r1^.rtype:=0; r1^.id:=dt1.fields[0].AsString; r1^.text:=dt1.fields[1].AsString; nd1:=tr.Items.AddChildObject(nil,r1.text,r1); createnode(nd1); dt1.Next; end; dt1.Close; dt1.Free; end else begin dt2:=tadoquery.Create(self); dt2.Connection := DM.conn1; dt2.SQL.Add('SELECT MB001,MB002,MB003 FROM FADMMB '); dt2.SQL.Add('WHERE MB004='+QuotedStr(prec(nd.Data)^.id) ); dt2.SQL.Add('ORDER BY MB001'); dt2.Open; dt2.First; while not dt2.eof do begin new(r1); r1.rtype:=1; r1^.id:=dt2.fields[0].AsString; r1^.text:=dt2.fields[1].AsString; tr.Items.AddChildObject(nd,r1.text,r1); dt2.Next; end; dt2.Close; dt2.free; end; end;
doll_candy
------
doll_candy
stonys
初階會員


發表:64
回覆:111
積分:38
註冊:2002-09-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-04 18:53:51 IP:203.67.xxx.xxx 未訂閱
您好,以下方法請您參考看看... 首先,拉一個TreeView跟adoquery元件 然後如下: procedure TForm1.Button1Click(Sender: TObject); var I, J, K : Integer; TEMPSTR: string; begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(' SELECT A.MA002,C.MC002,B.MB002 FROM MA A,MB B,MC C'); ADOQuery1.SQL.Add('WHERE'); ADOQuery1.SQL.Add(' (B.MB004 = A.MA001'); ADOQuery1.SQL.Add(' and B.MB003 = C.MC001)'); ADOQuery1.SQL.Add(' ORDER BY A.MA001, C.MC001, B.MB001'); ADOQuery1.Open; J := 0; for I := 1 to ADOQuery1.FieldCount do begin ADOQuery1.First; TEMPSTR := ''; while not ADOQuery1.Eof do begin if ADOQuery1.Fields[I - 1].Value <> TEMPSTR then begin TEMPSTR := ADOQuery1.Fields[I - 1].Value; if I = 1 then begin TreeView1.Items.AddChild(nil, TEMPSTR); J := J 1; end else for K := 0 to J - 1 do begin if TreeView1.Items[K].Text = ADOQuery1.Fields[I - 2].Value then begin TreeView1.Items.AddChild(TreeView1.Items[K], TEMPSTR); J := J 1; end; end; end; ADOQuery1.Next; end; end; TreeView1.FullExpand; end;
系統時間:2024-06-27 0:30:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!