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

DBGRID排序

尚未結案
ydq_axmmis
一般會員


發表:3
回覆:3
積分:1
註冊:2003-10-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-08 17:05:19 IP:61.66.xxx.xxx 未訂閱
各位大大,請教有什麼好的方法在DBGRID上點一下鼠標左鍵就可以排序。 如圖,謝謝!
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-08 23:01:49 IP:211.20.xxx.xxx 未訂閱
ydq_axmmis 你好
dbGrid是反應Datasource所連結的DataSet的資料內容的元件,要能在DBGRID上點一下鼠標左鍵就可以排序
首先要有點一下的事件,這沒問題dbGrid有OnTitleclick的事
第二,要知道點在那一個欄位,這也問題,在OnTitleClick事件中有個參數Column可以知道
三,要能依某個欄位動態的建立索引,這就稍微麻煩了
  1.有那些DataSet元件能改變資料錄的排列方式呢?
    1-1 TTable 可以使用IndexName 使用資料庫原有的索引,但必須改其索引鍵值才會改變記錄的排列方式
  1-2 TQuery利用SQL指令的Order By 可以排列料錄,同樣的必須改變鍵值欄位值後才會反應其順序
    1-3 TAdoDataSet等數個資料集元件,基本上與TTable及TQuery必須以同樣的方式才能改變資料錄排列方式。
  1-4 TAdoDataSet好像可以可以做Client端的臨時索引,但我不清楚,也沒實作過。
    1-5 TClientdataSet 對於動態索引可以說是它的專長(當然還有其他的特長),      2.結果呢也只有利用ClientDataSet的動態索引才是最理想的資料集元件,當然其
他的資料集不是不能,而是要動態的組織SQL反覆的向資料庫要資料或使用資料
庫現有的索引(萬一個表格有100個欄位那不就要建立100個索引)(造成資料重複
的讀取、及網路流量變大)      3.而ClientDataSet的動態索引的建立,又有幾種方法(各有其優缺點),個人比
較喜歡使用AddIndex 的方法來建立動態索引,不止可以昇冪排序還可以降冪排
序,不止可以單一欄位排序還可以多欄位排序,而且昇冪降冪參雜的多欄位排序,
還可以區分大小寫或不分大小寫.........................沒有了。    第四,在dbGrid的抬頭反應目前排序的狀況(排序的符號)    綜合上述,結論是,使用CLientDataSet資料集元件,然後在dbGrid.OnTitleClick
事件中判斷點選的欄位名稱,再以該欄位名稱動態建立索引,再加上於dbGrid欄位
抬頭畫索引符號的功能(這功能在本站可以找到很範例),最後若能把它寫成元件那就更完美了。
發表人 - chance36 於 2004/07/08 23:04:32
ydq_axmmis
一般會員


發表:3
回覆:3
積分:1
註冊:2003-10-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-09 09:37:44 IP:61.66.xxx.xxx 未訂閱
非常感謝chance36的回復,請問有現成的實例嗎?(最好也有加上於dbGrid欄位 抬頭畫索引符號的功能的實例)。再次感謝!
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-09 23:27:31 IP:211.20.xxx.xxx 未訂閱
引言: 非常感謝chance36的回復,請問有現成的實例嗎?(最好也有加上於dbGrid欄位 抬頭畫索引符號的功能的實例)。再次感謝!
ydq_axmmis 你好 我上傳了一個範例,可以參考看看 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=53002
ydq_axmmis
一般會員


發表:3
回覆:3
積分:1
註冊:2003-10-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-10 08:02:26 IP:61.66.xxx.xxx 未訂閱
已收到,謝謝!
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-04-30 13:44:49 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-05-08 8:29:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!