導航:首頁 > 凈水問答 > cxgrid放棄過濾

cxgrid放棄過濾

發布時間:2025-01-13 06:59:15

❶ delphi中cxgrid cheackbox 多選

在 Properties 的 OnEditValueChanged 事件寫代碼:

  1. 將當前行的主鍵值記錄下來

  2. Qry過濾,Filter := 'Check欄位 =True'

  3. 將過濾出來的記錄Check欄位 全部修改為 False

  4. 根據第1步記錄的主鍵值,定位回修改的那行,並將其Check欄位 修改為 True

大致代碼如下

var
tmpKey:string;
begin
ifnotqry.FieldByName('Check欄位').AsBooleanthen
Exit;
tmpKey:=qry.FieldByName('key欄位').AsString;
qry.DisableControls;
try
qry.Filtered:=False;
qry.Filter:='Check欄位=True';
qry.Filtered:=True;
whilenotqry.IsEmptythen
begin
qry.Edit;
qry.FieldByName('Check欄位').Value:=False;
qry.Post;
end;
qry.Locate('key欄位',tmpKey,[]);
qry.Edit;
qry.FieldByName('Check欄位').Value:=True;
qry.Post;
finally
qry.EnableControls;
end;
end;

❷ 怎麼樣列印cxgrid過濾後的數據

用語句cxGridDBTableView.Controller.Filter.Filteringtext獲得篩選語句 你可以在程序中用ADOQUERY來接受這條語句(還可以自己擴展) FSATREPORT的數據集指專向QUERY就可以了屬 試試。

❸ 怎樣使大量數據在Grid控制項中顯示時,不佔用太多時間

我一個access資料庫,1萬多條記錄,查詢時ADOQuery後的數據通過DataSource控制項全部顯示在DevExpress 的 cxGrid控制項中,每次查詢需要耗時5秒鍾才能響應用戶操作。 請問能否提供方法使Grid快速相應?就像access中或SQL SERVER中打開大量數據的表時,顯示完部分數據後,其它數據後台更新,快速響應操作你把數據分頁顯示,速度就上去了。。。對,我就是想要這樣,但如何分頁顯示呢?關注這個帖子幫你頂下~ 我也想知道cxGrid我沒用過,不過我用DBGrid顯示Access資料庫中一個四萬多條記錄的表,也就兩三秒而已。能說說怎樣處理的嗎?最好還是優化一下數據(查詢語句)。。對於不需顯示的橍位盡量不要, 其實不管怎麼好的數據網格控制項。。在數據量很大的時候。。都會有相對慢的問題。。因為顯示屏的大小是有限的,所以每屏顯示個30條記錄就差不多了。 程序中處理上一頁、和下一頁。程序中能讓用戶設置每屏顯示的記錄數。必須自己寫程序控制每頁的顯示數量嗎?數據網格控制項自己不帶有以上功能嗎? 就像SQL SERVER或ACCESS那樣,有大量數據時,首先先是一頁,接著就能響應用戶操作,同時後台繼續在數據網格控制項中添加其他沒有顯示的數據請幫忙大家都不清楚嗎關一下 。。。大家給個面子好不好求助dbGrid 跟StringGrid (你的cxGrid應該是StringGrid)有本質的區別, dbGrid僅僅需要顯示的就是行數區域的,也可以說dbGrid有分頁的作用。 stringGrid沒有, 你可以 load 時候 用Application.processmessage我用的DevExpress的Grid控制項,他本身是數據感知的,通過DataSource控制項獲得數據集,但我沒有找到他的分頁功能呢? 請幫忙cxGrid我沒用過,不過我用DBGrid顯示Access資料庫中一個9萬多條記錄的表,也就兩三秒而已。 CPU: P-M1.4 內存:256M 硬碟還是4200轉的我也是筆記本,咱們差不多,關鍵是不僅僅查詢,而且還經過一些SQL運算,所以耽誤時間了,我看主要是數據表格控制項的速度不夠,不加數據表格,單獨查詢,很快就完成了關注一下 對於用戶選擇商品信息的情況,大家是怎麼處理的?商品信息表大概有幾萬條記錄。cxGrid本身還對數據記錄進行轉換處理的,它有自己的數據記錄格式,所以速度上有所損失。 不可否認,cxGrid的功能是強大的,其查詢、過濾、分組等功能能讓你不用寫一行代碼。 SQL Server的企業管理器以及DB2的iSeries等類似客戶端在每次查詢時並不接收所有的返回記錄,它們在接收一定數目的記錄後就暫停接收,在客戶需要時再進行接收剩餘的部分記錄。這是客戶端做到的。樓主是不是搞錯了? 參考DBGrids.pas源碼(TCustomDBGrid.DrawCell),DBGrid顯示數據是顯示多少行就讀多少行的數據,不是將整個數據集讀進內存,所以即使有一億條數據,它也不會花什麼時間來顯示,花時間的是連接資料庫的數據集部件和資料庫程序,DBGrid也不保存不顯示的數據。 StringGrid跟DBGrid有明顯區別,DBGrid的數據源來自數據集,StringGrid的數據源來自內存,所以StringGrid顯示之前要將數據放入內存,樓主的想法只有對StringGrid才有意義,不過也不用在後台取數,只要監視StringGrid的TopLeftRow,仿效DBGrid讀入當前一頁的數據即可。 至於cxGrid等表格不是顯示慢,而是因為要完成各種功能,勢必要歷遍整個資料庫一次甚至多次,所以比較慢,沒有好辦法。 因為cxGrid在讀入數據後要對所有欄位和所有紀錄進行一次映射,慢是無可避免的了。如果表格中有Lookup欄位就更是慢上加慢沒辦法了嗎?只能換DBGrid控制項了嗎?dbgrideh也不錯郁悶,難道要更換數據表格控制項?系統已經完成了,使用維護中才發現大量數據顯示慢的問題,要全部更換控制項可不是一件簡單事啊為了用戶的利益,換控制項吧明天結帖,看看還有沒有一線生機沒有希望了嗎?放棄cxgrid的一些功能可以加快速度,我不會隨便用cxgrid,因為dxgrid升級成cxgrid之後,之前寫的程序就報廢了,萬一以後來了exgrid,fxgrid怎麼辦,此其一,cxgrid很多花俏的東西,你搞編程的會用,但連電腦也不怎麼懂的用戶會用嗎?有些功能有用嗎?別說在中國,我想老外也不一定使用,此其二,cxgrid很多滑鼠操作的功能,作為屏幕展示確實很吸引人,但是真正處理事務,這些功能除了花時間沒有什麼意義,此其三,cxgrid控制項很特別,不與其它兼容,連自己的dxgrid也不兼容,很容易被弔死在這棵樹上,要換控制項幾乎要重寫整個程序,思路都要變了,此其四,所以沒有什麼特殊用途,任它的功能再強大,也得慎重考慮,避免後悔。是啊,cxGrid確實不少弊端,換數據表格控制項不是不行,但有原因:系統已經完成,使用了很長時間了,更改控制項可能引入Bug,此其一;數據表格中許多要用到主從,甚至三層關系,不用cxGrid也要使用別的第三方控制項,一樣存在兼容性問題,此其二;三、我比較信任DevExpress的研發能力,認為一定有解決方法,此其三;我也不想就這樣放棄,還在嘗試別的方法,此其四。 嘿嘿,效仿樓上,勿怪。 也許多線程可以,我晚上試試,看SQL SERVER和ACCESS顯示數據記錄時,感覺是用了多線程的樣子……樓主,潑潑冷水,一旦在資料庫使用多線程,你將會遇到前所未有的困難------數據集控制項的線程安全問題,舉個例子,有多個線程同時使用一套數據控制項 a:=DataSet.FieldByName( *** ).AsString. b:=DataSet.FieldByName( *** ).AsString. 連續執行這兩句,b有時等於a,有時又不相等,還會讀數出錯,甚至報告致命錯誤,把程序當掉,因為數據控制項已經被其它線程修改,或者刪除,或者兩個線程同時讀數,使用Synchronize,可以解決問題,但這就是變相回到單線程,甚至比單線程執行還慢,結果從這個井出來,又落入另一個井,並且越跌越深,經驗之談,信不信你可以試試。最簡單的方法就是減少每次讀取的數據了,好像一下子讀入幾萬筆數據沒有太大必要。1: .DisableControls 2:go 3: .EnableControls今天沒時間了,瑣碎的事太多,沒辦法靜下心來寫代碼,感謝 kinneng 老兄的不吝指教,用天下無賊里的那就話: 「我想試試」。拖一天再結帖吧確實沒有找到好的解決辦法,看來在以後的程序中只能分頁顯示了。

閱讀全文

與cxgrid放棄過濾相關的資料

熱點內容
農村污水處理站址選擇的原則 瀏覽:863
ro超低壓膜原理是什麼 瀏覽:875
塑料加工廢水 瀏覽:652
礦漿濃度是陶瓷過濾機 瀏覽:168
8型樹脂怎麼生產 瀏覽:870
反滲透膜是對稱 瀏覽:444
臉盆水垢怎麼去除方法 瀏覽:38
污水中pam過量是什麼效果 瀏覽:567
反滲透的脫鹽率怎麼計算 瀏覽:92
柴油車濾芯加熱圈怎麼樣 瀏覽:692
人生模擬器中國式人生情商怎麼提升 瀏覽:26
污水提升泵廚房泵 瀏覽:745
環氧樹脂昆明地區 瀏覽:907
一體化玻璃鋼污水處理設備 瀏覽:382
城鄉建設部全國城鎮污水處理 瀏覽:803
污水處理廠職工多少錢一個月 瀏覽:637
六芯凈水器的濾芯怎麼安裝 瀏覽:618
鍋爐強效除垢劑 瀏覽:990
3m納米樹脂型號 瀏覽:736
成都edi設備 瀏覽:216