計算wwDBGRID 中的特定欄位加總速度問題 |
尚未結案
|
wj2pp
一般會員 發表:19 回覆:9 積分:5 註冊:2002-05-20 發送簡訊給我 |
請問我在wwDBGRID中要計算欄位總時,當資料多時performace 會降低,
我是用以下程式計算的,但是資料只要超過10筆,速度就降低了,請問有沒有方法可以快很多呢? with wwdbgrid1,wwdbgrid1.datasource.dataset do begin
SelectAll;
disableControls; {Disable controls to improve performance}
for i:= 0 to SelectedList.Count-1 do begin
GotoBookmark(SelectedList.items[i]);
Freebookmark(SelectedList.items[i]);
wei_tmp:=wei_tmp Fields[3].Value;
end;
EdWgt.Text:=FloatToStr(wei_tmp);
SelectedList.clear; { Clear selected record list }
EnableControls; { Re-enable controls }
end;
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
wj2pp 你好
即然要全部計算,可以不用SelectAll呀!,只要DataSet從頭到尾加總一遍即可。 Var bm : TBookMark; wei_tmp := Extended; Begin with wwdbgrid1.datasource.dataset do begin disableControls; {Disable controls to improve performance} bm := GetBookMark; // 記得原位置 wei_tmp:=0; // 先歸零 First; While Not Eof Do Begin wei_tmp:=wei_tmp Fields[3].Value; //累加 Next; // 下一筆 End; Freebookmark(bm); // 回到原位置 EdWgt.Text:=FloatToStr(wei_tmp); //顯示 EnableControls; { Re-enable controls } end; End;_______________________________________ 深藍的魚,祝您好運..........連連 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |