VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請較高手們!!我的迴圈那裡錯了?

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
sthuang66



註冊時間: 2014-04-27
文章: 166


第 1 樓

發表發表於: 星期四 四月 25, 2019 6:47 pm    文章主題: 請較高手們!!我的迴圈那裡錯了? 引言回覆

我的資料庫檔案格式如下: m10612.DBF, m10611.dbf ,,,,,,,
逐月排列! 我要算的東西是每次append三個月資料後作計算!舉例從10612開始!我先把10612到10610月append後計算成一個DBF!接下來是10611!要把10611到10609append後計算成一個DBF! 如此計算到10607!
我的程式碼如下! 不知道為什麼他只能跑10612就停了!!我的迴圈那裡錯了?


LOCAL START_YM
DATA='D:\DATA\OLD_DATA'
PATH='D:\TT\A904'
START_YM="10612"

FOR I= 1 TO 6

GET_FILE(START_YM)
M1="CTOD(TRANSFORM(FUNC_DATE ,'@R 9999/99/99'))"
P1='&PATH\P1.DBF'
P2='&PATH\P2.DBF'
SELECT *, &M1 AS F_DATE FROM RE INTO DBF RE_NEW
-----------
------------


IF RIGHT(START_YM,2)='01'
START_YM=ALLTRIM(STR(VAL(START_YM)-89))
ELSE
START_YM=ALLTRIM(STR(VAL(START_YM)-1))
ENDIF

ENDFOR


PROCEDURE GET_FILE(START_YM)

TEMP_YM=START_YM

FOR I = 1 TO 3
MFILE='&DATA\M'+TEMP_YM+'.DBF'
RESULT='&PATH\RE.DBF'

SELECT YM,ID,DATE FROM &MFILE INTO TABLE M1

CLOSE DATABASES ALL
IF NOT FILE(RESULT)
COPY FILE TEMP.DBF TO &RESULT
ELSE
USE &RESULT
APPEND FROM TEMP.DBF
ENDIF

ERASE M1.DBF
ERASE TEMP.DBF


IF RIGHT(TEMP_YM,2)='01'
TEMP_YM=ALLTRIM(STR(VAL(TEMP_YM)-89))
ELSE
TEMP_YM=ALLTRIM(STR(VAL(TEMP_YM)-1))
ENDIF
ENDFOR
ENDPROC
回頂端
檢視會員個人資料 發送私人訊息
CPS0204



註冊時間: 2014-08-24
文章: 441


第 2 樓

發表發表於: 星期五 四月 26, 2019 8:01 am    文章主題: 引言回覆

主程式當中有
FOR I= 1 TO 6
子程式 get_files 當中也有 for i=1 to 3
這是沖途的
建議:將子程式改為 for k=1 to 3,或是在子程式的迴圈之前加入 local i 來遮蔽上層的變數i

還有 SELECT *, &M1 AS F_DATE FROM RE INTO DBF RE_NEW
改為 SELECT *, &M1. AS F_DATE FROM RE INTO DBF RE_NEW
會好一點
回頂端
檢視會員個人資料 發送私人訊息
sthuang66



註冊時間: 2014-04-27
文章: 166


第 3 樓

發表發表於: 星期五 四月 26, 2019 9:24 am    文章主題: 引言回覆

謝謝CPS0204前輩高手!! 經你提點真的就是這樣!
沒注意到迴圈用同樣變數I 就衝突了!!想破頭兩天!!

真的太感激!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作