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

請問關於Setrange的功能,與Aggregate

尚未結案
Suzuna
一般會員


發表:25
回覆:57
積分:16
註冊:2004-05-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-30 16:19:38 IP:61.220.xxx.xxx 未訂閱
各位好,看李維的"分散式多層應用" 看到2-1-7使用aggregate的範例,產生了一些疑問 還請大家不吝指教,謝謝: 1.請問什麼是SetRange呢?為什麼我在範例中的StartEmployee的Edit欄位與EndEmployee欄位更改數值,按下FilterEmployee按鈕,結果都沒有差別呢? 這個篩選的實際功能到底為何呢?(help看不太懂) 2.看這個範例,似乎修改DBGrid中的值,左下角的計算值就會立即改變,可是我的沒有辦法,總要關掉程式,重新打開,之前改的數值計算結果才會改變,這是為什麼呢?
speedup
資深會員


發表:19
回覆:259
積分:280
註冊:2003-07-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-01 14:21:44 IP:218.168.xxx.xxx 未訂閱
1.SetRange用來篩選指定欄位的範圍 首先你必須設定IndexFieldNames來指定用哪個欄位來排序 例如employee 接著執行SetRange(['ID0008','ID0010']); 資料即將只列出ID0008~ID0010之間的資料 2.妳應該沒把ClientDataSet的AggregatesActive設成True 混心雜欲 棄修身~唉
------
唉~
Suzuna
一般會員


發表:25
回覆:57
積分:16
註冊:2004-05-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-01 15:05:49 IP:61.220.xxx.xxx 未訂閱
引言: 1.SetRange用來篩選指定欄位的範圍 首先你必須設定IndexFieldNames來指定用哪個欄位來排序 例如employee 接著執行SetRange(['ID0008','ID0010']); 資料即將只列出ID0008~ID0010之間的資料 2.妳應該沒把ClientDataSet的AggregatesActive設成True 混心雜欲 棄修身~唉
謝謝你,那麼為什麼書上要用FieldByName呢? 另外,我的AggregatesActive已設為True,還是一樣呢,需要關掉程式在重新啟動,才會有改變
speedup
資深會員


發表:19
回覆:259
積分:280
註冊:2003-07-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-01 15:38:52 IP:210.243.xxx.xxx 未訂閱
引言: 謝謝你,那麼為什麼書上要用FieldByName呢? 另外,我的AggregatesActive已設為True,還是一樣呢,需要關掉程式在重新啟動,才會有改變
1. SetRange算是SetRangeStart, SetRangeEnd, ApplyRange的簡式用法, 如果打算一步一步來可用SetRangeStart, SetRangeEnd, ApplyRange三個方法 如
with ClientDataSet1 do
begin
  SetRangeStart; { Set the beginning key }
  FieldByName('Employee').AsString := 'ID0008';
  SetRangeEnd; { Set the ending key }
  FieldByName('Employee').AsString := 'ID0010';
  ApplyRange; { Tell the dataset to establish the range }
end;
2. 請你點開ClientDataSet的Aggregates看你所設定的TAggregate(或是用AggregateField)的Active是否設定為Ture 混心雜欲 棄修身~唉
------
唉~
Suzuna
一般會員


發表:25
回覆:57
積分:16
註冊:2004-05-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-01 17:52:38 IP:61.220.xxx.xxx 未訂閱
引言:
引言: 謝謝你,那麼為什麼書上要用FieldByName呢? 另外,我的AggregatesActive已設為True,還是一樣呢,需要關掉程式在重新啟動,才會有改變
1. SetRange算是SetRangeStart, SetRangeEnd, ApplyRange的簡式用法, 如果打算一步一步來可用SetRangeStart, SetRangeEnd, ApplyRange三個方法 如
with ClientDataSet1 do
begin
  SetRangeStart; { Set the beginning key }
  FieldByName('Employee').AsString := 'ID0008';
  SetRangeEnd; { Set the ending key }
  FieldByName('Employee').AsString := 'ID0010';
  ApplyRange; { Tell the dataset to establish the range }
end;
2. 請你點開ClientDataSet的Aggregates看你所設定的TAggregate(或是用AggregateField)的Active是否設定為Ture 混心雜欲 棄修身~唉
謝謝你的解答~ 點開了,確定每個 >
speedup
資深會員


發表:19
回覆:259
積分:280
註冊:2003-07-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-02 09:30:19 IP:210.243.xxx.xxx 未訂閱
引言: 點開了,確定每個Active都為true < face="Verdana, Arial, Helvetica"> 妳是用TAggregate 還是TAggregateField來實作Aggregate功能? 若是TAggregateField值接以資料感知元件顯示Aggregate值 若是TAggregate,必須在TAggregate的OnUpdate事件撰寫Code來顯示Aggregate值 而且資料必須post之後Aggregate值才會變化(按Post 或將資料移到下一筆) 發表人 - speedup 於 2004/07/02 09:37:09
------
唉~
Ktop_Robot
站務副站長


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

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


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


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


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

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