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

DBGrid 的*/

尚未結案
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-23 16:38:17 IP:218.165.xxx.xxx 未訂閱
請問 DataModule2->ExGoodsDetailTable->Edit(); wwDBGrid2->Fields[5]->Value=wwDBGrid2->Fields[3]->AsFloat * wwDBGrid2->Fields[4]->AsFloat; 我該放在那個事件呢? 還是有更好ㄉ方法 暗光鳥初手求學中!
------
溝通網路情、連接數位心
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-23 17:11:05 IP:61.221.xxx.xxx 未訂閱
game, 您好 試試將code寫在Table的OnCalcFields這個Event。    ======================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-23 23:26:18 IP:61.221.xxx.xxx 未訂閱
補充一下 tech_state 說明的在 OnCalcFields Event 中要寫的內容. 小小範仃如下:    
void __fastcall TForm1::Query1CalcFields(TDataSet *DataSet)
{
  DataSet->Fields->Fields[3]->AsInteger =
    DataSet->Fields->Fields[1]->AsInteger * DataSet->Fields->Fields[2]->AsInteger;
}
但請不要直接操作 DBGrid 應對其指向的 DataSet 來進行操作.
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-23 23:37:04 IP:218.165.xxx.xxx 未訂閱
引言: 但請不要直接操作 DBGrid 應對其指向的 DataSet 來進行操作.
為什麼不行呢??? 可以說明一下嗎? 因為我是初手^_^ 謝謝您的指導! 暗光鳥初手求學中!
------
溝通網路情、連接數位心
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-24 01:34:33 IP:218.165.xxx.xxx 未訂閱
void __fastcall TDataModule2::ExGoodsDetailTableCalcFields( TDataSet *DataSet) { /* ExGoodsDetailTable->Fields->Fields[5]->AsInteger= ExGoodsDetailTable->Fields->Fields[3]->AsInteger * ExGoodsDetailTable->Fields->Fields[4]->AsInteger; */ ExGoodsMaint->wwDBGrid2->Fields[5]->Value=ExGoodsMaint->wwDBGrid2->Fields[3]->AsFloat * ExGoodsMaint->wwDBGrid2->Fields[4]->AsFloat; } 上面二種方式都不行ㄋㄟ!!! 為什麼會這樣呢? 暗光鳥初手求學中!
------
溝通網路情、連接數位心
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-24 01:47:10 IP:203.204.xxx.xxx 未訂閱
game, 您好 請修改一下程式,如下:  
ExGoodsDetailTable->FieldByName("A")->AsInteger=
ExGoodsDetailTable->FieldByName("B")->AsInteger * ExGoodsDetailTable->FieldByName("C")->AsInteger;
 
A, B, C:為您Table的欄位名稱,而您所說不行的原因,就是timhuang前輩建議不要做的原因。 ======================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-24 02:46:52 IP:218.165.xxx.xxx 未訂閱
引言: game, 您好 請修改一下程式,如下:
ExGoodsDetailTable->FieldByName("A")->AsInteger=
ExGoodsDetailTable->FieldByName("B")->AsInteger * ExGoodsDetailTable->FieldByName("C")->AsInteger;
 
A, B, C:為您Table的欄位名稱,而您所說不行的原因,就是timhuang前輩建議不要做的原因。 ======================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
我有試過了不行! 暗光鳥初手求學中!
------
溝通網路情、連接數位心
game
一般會員


發表:25
回覆:32
積分:11
註冊:2002-10-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-24 03:04:34 IP:218.165.xxx.xxx 未訂閱
我發現一件事! 好像我將code寫在Table的OnCalcFields這個Event 好像沒有動作 所以我在裡面加入 if (MessageBox(NULL,"測試","test",MB_OKCANCEL)!=IDOK) Abort(); 真的Test出來了! 完全沒有跳出視窗! 這是什麼問題呢? 暗光鳥初手求學中!
------
溝通網路情、連接數位心
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-24 11:10:52 IP:61.221.xxx.xxx 未訂閱
哦. 原來是這樣. 那一定是你的 DataSet 中沒有 Calculated 的欄位啦... 請先設定好新增 Calculated 的欄位. 若你是想在 sql command 中就直接取後算好的結果也行. 但是就不能用 TTable, 要用 TQuery 了. command 這樣下: select product_name, amount, price, amount * price as total_price from orders where orderid='1003' 類似這樣的語法.
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-05-24 12:15:53 IP:218.16.xxx.xxx 未訂閱
呵,我開始時也懷疑到底 wwDBGrid2->Fields[5]  是不是 Calculated 的欄位呢? 不過這是最最合理猜測耶 還有一點要留意的是
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-05-24 16:08:46 IP:203.204.xxx.xxx 未訂閱
看來還是timhuang和Justmade兩位前輩厲害, 先是看到game說不行時,我還在想怎麼會不行咧 壓根就沒想到會是 > ======================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 <>是非終日有,不聽自然無 <>天下本無事,庸人自擾之
系統時間:2024-04-27 3:48:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!