線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1356
推到 Plurk!
推到 Facebook!

如何 用五個資料欄位組成Tree

尚未結案
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-01 14:34:10 IP:221.169.xxx.xxx 未訂閱
我資料撈出來的記錄如上圖 如圖所示由1至5的欄位 dirserialno,fileid,charttype,ctrlid,serialno我要如何組成一個tree 不知道 要如可設定? tree的長向如下列 -dirserialno--fileid---charttype--ctrlid----serialno | | | | |__serialno | | | |_ctrlid----serialno | | |__charttype | | | | | | | | | |_fileid---charttype..... | | |_fileid---charttype..... | | | -dirserialno--fileid_
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-06 16:15:04 IP:221.169.xxx.xxx 未訂閱
不知道是否是我問的問題 不夠明確 到現在 怎麼都沒有人回答
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-07 09:31:57 IP:60.248.xxx.xxx 未訂閱
seedbcc您好 看dirserialno資料,隔開的部份應該就是您要的父子樹狀結構的根據 所以您要由好幾個for-loop餵給TreeView 類似這樣的作法
  while not cdsTemp.Eof do
  begin
    if LeftStr(cdsTemp.FieldByName('dirserialno').AsString,8)>TopString then
      AddNodeText(nil);
    cdsTemp.Next;
  end;
..................... .楛耕傷稼,楛耘失歲. .....................
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-07 09:55:38 IP:221.169.xxx.xxx 未訂閱
Sorry,我的tree亂掉了~現在才發現,難怪沒有看的懂 現在再重放放一張 如下圖     當我點到serialno(最底層)的時候,可以抓到 該筆記錄(一筆記錄的所有欄位)嗎
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-08 11:14:14 IP:221.169.xxx.xxx 未訂閱
這種資料欄位的組成,能夠組成tree嗎?
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-08 23:43:37 IP:61.217.xxx.xxx 未訂閱
to seedbcc: 雖然決定要放棄Delphi了,但看到您的問題,一時技癢....希望這是你要的答案 參考這裡 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=74608
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-11 22:36:24 IP:211.76.xxx.xxx 未訂閱
跟我想要的答案 還是有差異 不過非常感謝你的回答 我要的答案是 點到 每一個節點(最末點),只對應一筆資料 而不是 對應二筆資料
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-12 12:20:01 IP:61.229.xxx.xxx 未訂閱
你是指那個節點會對應到二筆資料? 如果要只對應到一筆資料,那應該是選擇的欄位沒有造成唯一筆資料的條件... 你要不要試著把你的BOM表資料放上來,我試一次給你看看..
引言: 跟我想要的答案 還是有差異 不過非常感謝你的回答 我要的答案是 點到 每一個節點(最末點),只對應一筆資料 而不是 對應二筆資料
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-12 12:31:52 IP:221.169.xxx.xxx 未訂閱
BOM表資料 是什麼?    我的資料如下:     發表人 - seedbcc 於 2005/07/12 12:37:59
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-07-12 13:48:43 IP:61.229.xxx.xxx 未訂閱
引言: BOM表資料 是什麼? <--顯示我誤會了,你的資料不是BOM表 我的資料如下: 你誤會了,我是指你第一次貼上來的那個圖裡的資料
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-07-12 14:14:20 IP:221.169.xxx.xxx 未訂閱
你是指table嗎 還是指資料庫 我的資料庫是oracle,所以很難弄上來 我的資料,就像上面那一篇 我重貼的欄位一樣 由第一個欄位開始 往下展成tree
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-07-12 16:41:13 IP:61.229.xxx.xxx 未訂閱
以TClientDataSet下sql指令讀取資料,然後利用TClientDataSet.SaveToFile的方式存成檔案,上傳上來,我來試給你看....
引言: 你是指table嗎 還是指資料庫 我的資料庫是oracle,所以很難弄上來 我的資料,就像上面那一篇 我重貼的欄位一樣 由第一個欄位開始 往下展成tree
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-07-12 16:55:59 IP:221.169.xxx.xxx 未訂閱
Sorry 再問一下 TClientDataSet要如何連接我的資料庫啊 我只會用自己的資料元件 還有ado的元件 若我用adoquery 下 savetofile( 括號裡面要填什麼呢? )
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-07-12 17:39:25 IP:61.229.xxx.xxx 未訂閱
SaveToFile裡傳入的參數為要儲存的檔案名稱.我都是用TClientDataSet來做的,沒有試過TADOQuery元件,不過既然有提供這個方法,那麼就試試看.你存成檔案後放上來,我再用TADOQuery來讀資料
引言: Sorry 再問一下 TClientDataSet要如何連接我的資料庫啊 我只會用自己的資料元件 還有ado的元件 若我用adoquery 下 savetofile( 括號裡面要填什麼呢? )
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-07-12 17:47:44 IP:221.169.xxx.xxx 未訂閱
SaveToFile(const FileName:WideString='';Format:TPersistFormat=pfAdPg);    
ADOQUERY.SAVETOFILE(裡面的參數如上) 副檔名我要存成什麼格式呢 是.TXT還是 ??
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#16 引用回覆 回覆 發表時間:2005-07-12 17:59:33 IP:61.229.xxx.xxx 未訂閱
ADOQuery1.SaveToFile('C:\MyData.txt'); 副檔名沒有差別,要用txt也可以!!第二個參數就用預設值,不要理他沒有關係
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#17 引用回覆 回覆 發表時間:2005-07-12 18:10:15 IP:221.169.xxx.xxx 未訂閱
我傳到下方的位址了 麻煩你囉 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=74820
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#18 引用回覆 回覆 發表時間:2005-07-12 18:36:57 IP:61.229.xxx.xxx 未訂閱
大哥...你上傳的檔案,內容怎麼與你第一個post上來的圖不一樣?光是DIRSERIALNO這個欄位就沒有了...另外,欄位裡要有值啦,像CTRLID與SERIALNO欄位都是空值,這樣怎麼測??不能偏心啦 <>< face="Verdana, Arial, Helvetica">引言: 我傳到下方的位址了 麻煩你囉 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=74820
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#19 引用回覆 回覆 發表時間:2005-07-12 18:48:17 IP:221.169.xxx.xxx 未訂閱
我又再重新上傳一次了
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#20 引用回覆 回覆 發表時間:2005-07-12 19:21:05 IP:61.229.xxx.xxx 未訂閱
可以呀....底下是執行結果 結節點的越高,過濾出來的資料越多 結節點到最後面的葉子時,過濾出來的資料就只有一筆(如果設定的欄位沒有錯的話) 我把程式上傳到這裡,你可以參考看看: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=74833
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#21 引用回覆 回覆 發表時間:2005-07-13 09:45:59 IP:221.169.xxx.xxx 未訂閱
change.jian大大 你上傳的程式 好像有點問題     發表人 - seedbcc 於 2005/07/13 12:55:04
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#22 引用回覆 回覆 發表時間:2005-07-13 10:56:35 IP:61.229.xxx.xxx 未訂閱
可否描述問題內容,或將錯誤訊息畫面上傳?
引言: change.jian大大 你上傳的程式 好像有點問題
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#23 引用回覆 回覆 發表時間:2005-07-13 13:20:07 IP:61.229.xxx.xxx 未訂閱
to seedbcc: 1.我想應該是我忘了告訴你操作流程了(我沒有做很多的錯誤處理,在UI界面上):   (1)程式執行後,先點選ADOQuery,會跳出開啟檔案的對話框,然後點選你上傳的txt檔(用ADOQuery.SaveToFile存成的檔案),資料就會載入,並顯示上方的DBGrid上.   (2)點選[產生TreeView]的按鈕,就可以產生Tree了    2.在步驟(1),除了點選ADOQuery外,也可以點選DBDemo.Parts,會載入Parts的資料,並顯示在上方的DBGrid上.    3.你的錯誤訊息,應該是還沒有點選ADOQuery或DBDemo.Parts就點選[產生TreeView]的按鈕,才會出現的錯誤訊息    4.產生TreeView的功能,已封裝成TTreeViewSearch這個物件,只要設定屬性,就可以了,方法在這個範例裡都有.請自行參考
引言: change.jian大大 你上傳的程式 好像有點問題 發表人 - seedbcc 於 2005/07/13 12:55:04
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#24 引用回覆 回覆 發表時間:2005-07-13 13:24:07 IP:221.169.xxx.xxx 未訂閱
非常感謝您
系統時間:2024-06-25 13:47:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!