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

計算wwDBGRID 中的特定欄位加總速度問題

尚未結案
wj2pp
一般會員


發表:19
回覆:9
積分:5
註冊:2002-05-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-20 11:17:41 IP:61.222.xxx.xxx 未訂閱
請問我在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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-21 01:38:43 IP:203.204.xxx.xxx 未訂閱
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;
_______________________________________ 深藍的魚,祝您好運..........連連
系統時間:2024-11-22 11:55:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!