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

DBGird 欄位做總和

答題得分者是:haman
jace0421
一般會員


發表:20
回覆:18
積分:7
註冊:2005-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-30 20:35:53 IP:218.163.xxx.xxx 未訂閱
我希望可以把DBGird內的「price」這個欄位做總和, DBGird內的price個數不會固定, 請問該怎麼做, borland的書,似乎蠻少談到這個的。 請教討論區的高手們。 若討論區已有文章,很抱歉重發文, 麻煩告知我相關文章的網址,謝謝。    
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-30 21:55:50 IP:211.76.xxx.xxx 未訂閱
本上這個問題要從DataSource下手 如果是用Query的話直接下"select SUM(prise) AS 總和 from 資料表名稱"  就可以求出總和(Query1->FieldByName("總和")->AsInteger取出)    或是不更動show出來的資料,在程式中將整個資料表以loop的方式去計算你的總和也可以 下面的片段就是採用這種方式寫的,請參考...
        int Sum=0;
        DBGrid1->DataSource->DataSet->First();
        while(!DBGrid1->DataSource->DataSet->Eof)
        {
                Sum =DBGrid1->Fields[4]->AsInteger;
                DBGrid1->DataSource->DataSet->Next();
        }
        DBGrid1->DataSource->DataSet->First();
        ShowMessage(IntToStr(Sum));
==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
jace0421
一般會員


發表:20
回覆:18
積分:7
註冊:2005-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-30 22:27:32 IP:218.163.xxx.xxx 未訂閱
haman,請問如果我希望把結帳金額show在edit裡面, 該怎麼修改呢? 另外可以麻煩haman,告知程式的用意及註解嗎? 發表人 - jace0421 於 2005/10/30 23:41:43
haman
中階會員


發表:46
回覆:137
積分:56
註冊:2005-03-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-31 04:12:42 IP:211.76.xxx.xxx 未訂閱
        int Sum=0;
        DBGrid1->DataSource->DataSet->First();
        //DBGrid1->DataSource->DataSet可以改成ADOTable、ADOQuery、ADOConnection等等,這取決於你用什麼元件開資料庫
        //這行的目的是將目前記錄的位置移到第一筆資料            while(!DBGrid1->DataSource->DataSet->Eof)
        //這行是判斷資料筆數是不是已經到底了(Eof:End Of File,有Eof,也就會有Bof,如何使用就看你自已了)
        {
                Sum =DBGrid1->Fields[4]->AsInteger;//加總
                //其中的4指的是第5個欄位
                DBGrid1->DataSource->DataSet->Next();
                //將記錄的位置移到下一筆資料
        }
        DBGrid1->DataSource->DataSet->First();
        //回到第一筆
        //ShowMessage(IntToStr(Sum));
        Edit1->Text = IntToStr(Sum);
        //改到Edit裡的話寫成這樣就行了
如果還有不懂的就再問吧 ==================================== 懂的不多,卻想學的更多,搞得不自覺的將問題複雜化@@
jace0421
一般會員


發表:20
回覆:18
積分:7
註冊:2005-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-31 19:33:13 IP:218.163.xxx.xxx 未訂閱
謝謝haman解決我的問題。
bimmer0728
一般會員


發表:1
回覆:1
積分:0
註冊:2005-08-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-12-08 14:18:01 IP:210.202.xxx.xxx 未訂閱
看了以上詳盡的解答~另有一問~ "//DBGrid1->DataSource->DataSet可以改成ADOTable、ADOQuery、ADOConnection等等,這取決於你用什麼元件開資料庫" 如果這個DBGrid1是 ADOStoredProc造成的要如何改呢? ~因為 int Sum=0; DBGrid1->DataSource2->ADOStoredProc1->First(); .............. 會有error[/blue] Albert Feng
------
Albert Feng

rockwow
一般會員


發表:1
回覆:1
積分:0
註冊:2007-09-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-10-09 16:34:25 IP:59.120.xxx.xxx 訂閱
網海茫茫,找到您這ㄧ段程式,很實用,謝謝您了。
系統時間:2024-04-19 16:24:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!