請問如何讓兩個不同的DBF 相同的欄位 同步修改?! |
尚未結案
|
ep20
一般會員 發表:3 回覆:3 積分:1 註冊:2012-03-09 發送簡訊給我 |
如題 請問如何讓兩個不同的DBF 相同的欄位 同步修改?!
就是 我有個進貨的dbf 然後我把它不同的產品的另外做了dbf 因為原本我做 三個產品個別的總成本加總 但是算出來的金額有誤 我原本是這麼寫的 procedure TForm1.Button7Click(Sender: TObject); var i, xCalTCCoffee: integer; begin dbPur.Filtered:= False; dbPur.Filter:= edCFP.Text; // edCFP.Text的內容是GOODSNAME='咖啡豆' dbPur.Filtered:= True; dbPur.First; dbPur.Edit; xTCCoffee:= 0; for i:= 1 to dbPur.RecordCount do begin xCalTCCoffee:= dbPur.FieldByName('GOODSTCOST').AsInteger; xTCCoffee:= xCalTCCoffee xTCCoffee; dbPur.next; end; listbox1.items.add('咖啡豆總成本:' inttostr(xTCCoffee) '元'); end; 這個正確的金額假設說應該是100000 但是跑出來的卻是243560 等等的錯誤數字 請問這在算的時候 是哪邊出錯了?! 編輯記錄
ep20 重新編輯於 2012-06-12 07:15:36, 註解 無‧
|
t27
中階會員 發表:34 回覆:95 積分:90 註冊:2002-06-19 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
1.試試改成這樣
dbPur.Active: = True; dbPur.Filtered:= True; dbPur.Filter:= edCFP.Text; // edCFP.Text的內容是GOODSNAME='咖啡豆' 2.請先檢查所 filter 的記錄是不是都包含 '咖啡豆', 我覺得很有可能包含其他記錄 3.使用 do while 方式會比較好, 因為 RecordCount 不一定所有的資料庫都支援 ===================引 用 ep20 文 章=================== 如題 請問如何讓兩個不同的DBF 相同的欄位 同步修改?! 就是 我有個進貨的dbf 然後我把它不同的產品的另外做了dbf 因為原本我做 三個產品個別的總成本加總 但是算出來的金額有誤 我原本是這麼寫的 procedure TForm1.Button7Click(Sender: TObject); var i, xCalTCCoffee: integer; begin dbPur.Filtered:= False; dbPur.Filter:= edCFP.Text; // edCFP.Text的內容是GOODSNAME='咖啡豆' dbPur.Filtered:= True; dbPur.First; dbPur.Edit; xTCCoffee:= 0; for i:= 1 to dbPur.RecordCount do begin xCalTCCoffee:= dbPur.FieldByName('GOODSTCOST').AsInteger; xTCCoffee:= xCalTCCoffee xTCCoffee; dbPur.next; end; listbox1.items.add('咖啡豆總成本:' inttostr(xTCCoffee) '元'); end; 這個正確的金額假設說應該是100000 但是跑出來的卻是243560 等等的錯誤數字 請問這在算的時候 是哪邊出錯了?! |
tuga
高階會員 發表:16 回覆:109 積分:120 註冊:2002-07-13 發送簡訊給我 |
1 你在回圈前用 edit, 跳到下一筆前, 會自動 post,
2 trace 一下 dbPur.first; while not dbPur.eof do begin ................ WriteErrorLog( dbPur.FieldByName('GOODSName').AsString ' ' dbPur.FieldByName('GOODSTCOST').AsString ', ' IntToStr(xCalTCCoffee) ); dbPur.next; end; procedure WriteErrorLog(strMessage:string); var hErrorLog:TextFile; strLogFileName:String; begin strLogFileName:=ExtractFilePath(Application.ExeName) 'ERROR.LOG'; if not FileExists(strLogFileName) then begin AssignFile(hErrorLog,strLogFileName); ReWrite(hErrorLog); WriteLn(hErrorLog,'Start Here'); CloseFile(hErrorLog); end; AssignFile(hErrorLog,strLogFileName); Append(hErrorLog); WriteLn(hErrorLog,DateTimeToStr(Now) ',' strMessage); CloseFile(hErrorLog); end; ===================引 用 ep20 文 章=================== 如題 請問如何讓兩個不同的DBF 相同的欄位 同步修改?! 就是 我有個進貨的dbf 然後我把它不同的產品的另外做了dbf 因為原本我做 三個產品個別的總成本加總 但是算出來的金額有誤 我原本是這麼寫的 procedure TForm1.Button7Click(Sender: TObject); var i, xCalTCCoffee: integer; begin dbPur.Filtered:= False; dbPur.Filter:= edCFP.Text; // edCFP.Text的內容是GOODSNAME='咖啡豆' dbPur.Filtered:= True; dbPur.First; dbPur.Edit; xTCCoffee:= 0; for i:= 1 to dbPur.RecordCount do begin xCalTCCoffee:= dbPur.FieldByName('GOODSTCOST').AsInteger; xTCCoffee:= xCalTCCoffee xTCCoffee; dbPur.next; end; listbox1.items.add('咖啡豆總成本:' inttostr(xTCCoffee) '元'); end; 這個正確的金額假設說應該是100000 但是跑出來的卻是243560 等等的錯誤數字 請問這在算的時候 是哪邊出錯了?! |
ep20
一般會員 發表:3 回覆:3 積分:1 註冊:2012-03-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |