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

[問題] 請問如何把計算出來的數值代入欄位

答題得分者是:P.D.
depblue
一般會員


發表:38
回覆:29
積分:13
註冊:2004-12-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-27 23:23:16 IP:218.171.xxx.xxx 未訂閱
請問要如何把計算後的數值自己新增的欄位中?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-28 02:01:43 IP:61.71.xxx.xxx 未訂閱
引言: 請問要如何把計算後的數值自己新增的欄位中? class="code"> bQu.First; pie := 0; while not bQu.Eof do begin cQu.First; while not cQu.Eof do begin if cQuSTBNO.Value = bQuSTBNO.Value then pie := pie cQuQTY.Value; cQu.Next; end; // 由於不知道你的bQu是TTable, TQuery或是其他來源, 所以以下只是一個 // 基本型的寫法 bQu.Edit; (或bQu.Append) bQuSAV_PIE.Value:= pie; bQu.Post; bQu.Next; end;
不是很懂唉! 我猜是不是要上面紅色的表示法
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-28 07:50:29 IP:218.163.xxx.xxx 未訂閱
bQu.First;
pie := 0;    while not bQu.Eof do
begin
  
  cQu.First;
  
  while not cQu.Eof do
  begin
    if cQuSTBNO.Value = bQuSTBNO.Value then
      pie := pie   cQuQTY.Value;
    
    cQu.Next;
  end;
 
  // 由於不知道你的bQu是TTable, TQuery或是其他來源, 所以以下只是一個
  // 基本型的寫法
  bQu.Edit; (或bQu.Append)
  bQuSAV_PIE.Value:= pie;
  bQu.Post;     
  // 看起來似乎像是 Detail 加總到 Master, 如果是的話可能還要加入一個
  // 歸零的動作
  pie := 0 ;
       bQu.Next;
end;
depblue
一般會員


發表:38
回覆:29
積分:13
註冊:2004-12-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-28 23:27:57 IP:218.171.xxx.xxx 未訂閱
我使用的是Delphi5.0中的ADOQuery元件,b和c都是使用同一各資料表 我想把上一各bQu中的資料帶入cQu中,在計算出cQu中某各數值的總量後, 在帶回bQu中的計算欄位。 我的意思大約如下: bQu(select * from A) cQu(select * from A) cQu.Append; cQuSTBNO.Value := bQuSTBNO.Value; cQuSTBPIE.Value := bQuSTBPIE.Value; 在bQu中新增一各計算欄位(SAV_PIE); bQu.First; pie := 0; while not bQu.Eof do begin cQu.First; while not cQu.Eof do begin if cQuSTBNO.Value = bQuSTBNO.Value then pie := pie cQuQTY.Value; cQu.Next; end; bQu.Next; end; bQuEdit; bQusav_pie.Value := pie; 我的做法大致如上,我的pie數值有算出來,不過就是代不進去欄位 裡面, 請問:在ADOQuery中的OnCalcFields事件中,變數(pie)是不是不能代入 自己新增的計算欄位(sav_pie)?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-21 11:28:33 IP:61.71.xxx.xxx 未訂閱
引言: 我使用的是Delphi5.0中的ADOQuery元件,b和c都是使用同一各資料表 我想把上一各bQu中的資料帶入cQu中,在計算出cQu中某各數值的總量後, 在帶回bQu中的計算欄位。 我的意思大約如下: bQu(select * from A) cQu(select * from A) cQu.Append; cQuSTBNO.Value := bQuSTBNO.Value; cQuSTBPIE.Value := bQuSTBPIE.Value; 在bQu中新增一各計算欄位(SAV_PIE); bQu.First; pie := 0; while not bQu.Eof do begin cQu.First; while not cQu.Eof do begin if cQuSTBNO.Value = bQuSTBNO.Value then pie := pie cQuQTY.Value; cQu.Next; end; bQu.Next; end; bQu.Edit; bQusav_pie.Value := pie; 我的做法大致如上,我的pie數值有算出來,不過就是代不進去欄位 裡面, 請問:在ADOQuery中的OnCalcFields事件中,變數(pie)是不是不能代入 自己新增的計算欄位(sav_pie)?
抱歉, 沒有看到你後面的回言 oncalcfield 是可以變數代入欄位, 你的程式看似沒有問題, 如果這是你的 oncalcfield全文, 好像最後面少了 bQu.Post; 另外, 這樣的迴圈寫法十分不適用於oncalc事件中, 因為每移動一筆就會重算 一遍, 只要移動1000筆就會脫垮整個資料庫, 如果你的程式有下 post的話, 那建議你用 debug方式檢查最後算出的pie值是 否正確, 或許問題是出在計算有錯的情況下!
系統時間:2024-07-02 5:30:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!