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

怎麼計算文字檔中的明細檔資料加總之後再寫到主檔中

答題得分者是:pprayer
cindyliu
一般會員


發表:16
回覆:18
積分:6
註冊:2008-09-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-12-04 00:17:39 IP:118.166.xxx.xxx 訂閱



[code delphi]
for iCnt := 0 to slPage.Count - 1 do
begin
If Copy(slPage.Strings[iCnt],1,1)='H' then
begin
ttlAMT := 0;
sNo := GetNo; // 取得自動編號
sHead := slPage.Strings[iCnt];

if Copy(slPage.Strings[iCnt],1,1)='D' then
begin
sTemp := slPage.Strings[iCnt];
QueryItem.Append;
QueryItem.FieldByName('ORD_NO').AsString := sNo; // 訂單編號
QueryItem.FieldByName('PRD_ID').AsString := Trim(Copy(sTemp,2,15)); // 商品編號
QueryItem.FieldByName('QTY').AsString := Trim(Copy(sTemp,17,4)); // 數量
QueryItem.FieldByName('PRICE').AsString := Trim(Copy(sTemp,21,5)); // 單價
QueryItem.FieldByName('AMT').AsString := Trim(Copy(sTemp,26,8)); // 金額
ttlAMT := ttlAMT StrToFloatDef(Copy(sTemp,26,8),0); // 計算總金額
QueryItem.Post;
end;
end;
[/code]

編輯記錄
cindyliu 重新編輯於 2009-12-04 00:20:31, 註解 無‧
pprayer
高階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-12-04 09:15:20 IP:59.120.xxx.xxx 訂閱
  1. ttlAMT := 0;
  2. for iCnt := 0 to slPage.Count - 1 do
  3. begin
  4. If Copy(slPage.Strings[iCnt],1,1)='H' then
  5. begin
  6. if QueryMaster.State in [dsInsert] then begin
  7. QueryMaster.FieldByName('AMT).AsString := inttostr(ttlAMT );
  8. QueryMaster.Post;
  9. ttlAMT := 0;
  10. ene;
  11. //ttlAMT := 0;
  12. sNo := GetNo; // 取得自動編號
  13. sHead := slPage.Strings[iCnt];
  14. if Copy(slPage.Strings[iCnt],1,1)='D' then
  15. begin
  16. sTemp := slPage.Strings[iCnt];
  17. QueryItem.Append;
  18. QueryItem.FieldByName('ORD_NO').AsString := sNo; // 訂單編號
  19. QueryItem.FieldByName('PRD_ID').AsString := Trim(Copy(sTemp,2,15)); // 商品編號
  20. QueryItem.FieldByName('QTY').AsString := Trim(Copy(sTemp,17,4)); // 數量
  21. QueryItem.FieldByName('PRICE').AsString := Trim(Copy(sTemp,21,5)); // 單價
  22. QueryItem.FieldByName('AMT').AsString := Trim(Copy(sTemp,26,8)); // 金額
  23. ttlAMT := ttlAMT StrToFloatDef(Copy(sTemp,26,8),0); // 計算總金額
  24. QueryItem.Post;
  25. end;
  26. end;
  27. if QueryMaster.State in [dsInsert] then
  28. QueryMaster.Post;
編輯記錄
pprayer 重新編輯於 2009-12-04 09:21:19, 註解 無‧
pprayer 重新編輯於 2009-12-04 09:24:52, 註解 無‧
pprayer 重新編輯於 2009-12-04 17:16:25, 註解 無‧
cindyliu
一般會員


發表:16
回覆:18
積分:6
註冊:2008-09-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-12-04 12:50:22 IP:59.120.xxx.xxx 訂閱
pprayer~

我早上照著您的方法做了,
金額是對了,可是最後一筆的金額卻沒寫入耶...
pprayer
高階會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-12-04 17:17:33 IP:61.63.xxx.xxx 訂閱

code 我改過了 , 請再試試看
cindyliu
一般會員


發表:16
回覆:18
積分:6
註冊:2008-09-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-12-09 23:10:02 IP:118.166.xxx.xxx 訂閱

===================引 用 pprayer 文 章===================

code 我改過了 , 請再試試看



一開始還是不行...最後一筆金額還是零
後來在35行改成這樣就可以了~謝謝^^

if QueryMaster.State in [dsInsert] then
begin
QueryMaster.FieldByName('AMT).AsString := inttostr(ttlAMT );
QueryMaster.Post;
end;
系統時間:2024-05-17 6:35:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!