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

關於時間(月)的限制

尚未結案
cat90194
一般會員


發表:1
回覆:2
積分:0
註冊:2009-08-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-08-15 16:00:56 IP:203.64.xxx.xxx 訂閱
各位大大你們好,我們是Delphi 5的新手
我們寫了一個程式就是可以計算收入,但是沒辦法讓他知道必須是"月"收入(老師說我們的語法會從盤古開天開始算起= =)
在語法上必須如何限制呢?
可否請大大與我們分享一下(爬多文還是不懂的我...)謝謝大家!
以下是語法:

procedure TForm1.btnTotalEarnClick(Sender: TObject);
var i,j,sum1,sum2:integer;
begin
tbReader.First;
listbox1.items.clear;
sum1:=0;
sum2:=0;

for i:=1 to tbReader.recordcount do
begin
for j:= 1 to tbBorrow.recordcount do
begin
sum1:=sum1 tbborrow.fieldbyname('租金').asinteger;
sum2:=sum2 tbborrow.fieldbyname('罰鍰').asinteger;
tbborrow.Next;
end;
tbReader.Next;
end;
listbox1.items.Add('租金收入: $' inttostr(sum1) ' 整');
listbox1.items.add('罰 金: $' inttostr(sum2) ' 整');
listbox1.items.add('本月總收入: $' inttostr(sum1 sum2) ' 整');
end;
------
大家好!
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-08-15 18:51:22 IP:59.112.xxx.xxx 訂閱
問題不是出在語法, 而是取得的資料
要從 tbReader, tbBorrow 取得方式處理才合理
比如改用Query , SQL 語法中 限制月份, 或是直接在SQL中 sum() 加總 group by 月

=================引 用 cat90194 文 章===================
各位大大你們好,我們是Delphi 5的新手
我們寫了一個程式就是可以計算收入,但是沒辦法讓他知道必須是"月"收入(老師說我們的語法會從盤古開天開始算起= =)
在語法上必須如何限制呢?
可否請大大與我們分享一下(爬多文還是不懂的我...)謝謝大家!
以下是語法:

------
額有朝天骨,眼中有靈光
cat90194
一般會員


發表:1
回覆:2
積分:0
註冊:2009-08-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-08-15 21:26:15 IP:203.64.xxx.xxx 訂閱
小傑克大大你好!

因為我們只是剛學Delphi的學生,而且老師也尚未教過SQL等語法,所以可否請您提供一個在最基本的時候可以用的語法呢?

這樣我們會非常感激!

我們是做租書店的資料庫系統,目前只剩下月收入還沒完成。
------
大家好!
P.D.
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-08-15 22:50:55 IP:61.67.xxx.xxx 未訂閱
不是很清楚你的結構設計及核心程式, 在紅色的地方加入你的判斷應可解決你的問題(因為你不懂sql, 這是最直接的)
或者老師是否有教過 filter 的用法也可以達成
===================引 用 cat90194 文 章===================
...略
procedure TForm1.btnTotalEarnClick(Sender: TObject);
var i,j,sum1,sum2:integer;
begin
tbReader.First;
listbox1.items.clear;
sum1:=0;
sum2:=0;

for i:=1 to tbReader.recordcount do
begin
for j:= 1 to tbBorrow.recordcount do
begin
if tbbrrow.fieldbyname('月份').value="2月' then begin
sum1:=sum1 tbborrow.fieldbyname('租金').asinteger;
sum2:=sum2 tbborrow.fieldbyname('罰鍰').asinteger;
end;
tbborrow.Next;
end;
tbReader.Next;
end;
listbox1.items.Add('租金收入: $' inttostr(sum1) ' 整');
listbox1.items.add('罰 金: $' inttostr(sum2) ' 整');
listbox1.items.add('本月總收入: $' inttostr(sum1 sum2) ' 整');
end;
編輯記錄
P.D. 重新編輯於 2009-08-15 22:51:44, 註解 無‧
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-08-15 23:13:40 IP:59.112.xxx.xxx 訂閱
因為沒有你們資料結構,我用假設的
tbBorrow 這table 裡面有 日期 ,租金 ,罰鍰 ,會員 這四個欄位
資料像這樣 20090815 20 10 001
SELECT SUM(租金)as 租金收入 ,SUM(罰鍰)as 罰鍰 FROM TBBORROW
WHERE LEFT(日期,6) = '200908'

--------------------------------------------------------
sql語法會根據資料庫的不同略略有差異,
------
額有朝天骨,眼中有靈光
cat90194
一般會員


發表:1
回覆:2
積分:0
註冊:2009-08-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-08-15 23:17:28 IP:203.64.xxx.xxx 訂閱
抱歉  版大  

再冒昧的請問您

那在DataBase裡面 "月份" 應該要定義成什麼型態呢?

------
大家好!
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-09-10 17:10:08 IP:61.63.xxx.xxx 未訂閱
不,這作法是用日期來取月份,你只要知道日期要存成什麼型態就可以
月份會在SQL執行時用 database 的function產生
所以你們要用在什麼資料庫也要提供大家知道比較好


===================引 用 cat90194 文 章===================
抱歉 版大

再冒昧的請問您

那在DataBase裡面 "月份" 應該要定義成什麼型態呢?

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