| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		LiuRambo
 
 
  註冊時間: 2007-11-27 文章: 481
 
  第 1 樓
  | 
		
			
				 發表於: 星期四 七月 23, 2009 2:37 pm    文章主題: 求救有關VFP6 ON ERROR的疑問 | 
				     | 
			 
			
				
  | 
			 
			
				敝人所寫的程式常常會需要呼叫WORD來編輯文件
 
有個很難控制的部分就是"行數控制"
 
最簡單的方式就是一次長出超過所需的行數
 
等文件產生完成再把多出的行數DELETE
 
但是速度會很慢
 
 
所以想用ON ERROR來攔截錯誤碼1426
 
當發生這錯誤碼時自動在WORD新增一行空白行
 
但是卻遇到一個奇怪狀況
 
就是當攔截到之後,所攔截到的"程式碼"卻不是真正執行的那一行
 
而是上一層的某一行,兩段程式天差地遠
 
請問到底是為什麼呢
 
我試過從最外層到FORM裡面的ERROR
 
都是得到一樣的結果
 
請問是因為呼叫OLE的關係嗎
 
 
ON ERROR這工具才沒玩多久
 
還請各方大德敬請賜教 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 2 樓
  | 
		
			
				 發表於: 星期四 七月 23, 2009 4:57 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 請把您 on error 及錯誤處理程序貼出來看看 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 3 樓
  | 
		
			
				 發表於: 星期四 七月 23, 2009 5:56 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				HELP :
 
============
 
If the command specifies a procedure to execute when an error occurs, you can use ERROR( ), MESSAGE( ), LINENO( ), and PROGRAM( ) to pass the error number, the error message, the program line number, and the program name to the procedure. This information can be used to correct the cause of the error.
 
 
============
 
 
你是說,當發生錯誤時, LINENO() 不是在你發生錯誤的那行? _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		LiuRambo
 
 
  註冊時間: 2007-11-27 文章: 481
 
  第 4 樓
  | 
		
			
				 發表於: 星期四 七月 23, 2009 6:01 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				譬如說在某PRG裡面
 
 
執行程式段A
 
執行程式段B
 
DO FORM aa
 
 
然後在FORM aa裡面處理OLE WORD的部分
 
這時發生錯誤碼1429 行號不存在(就是WORD裡面ENTER空白行不足)
 
而MESSAGE()和MESSAGE(1)裡面所呈現的訊息卻不是FORM裡面所執行OLE的程式行
 
而是出現外部PRG的程式段B
 
 
本來我的構想是
 
如果ERROR能夠正確攔截到錯誤訊息
 
跳到ERRORHANDLE裡面加入所缺的空白行
 
再由MESSAGE(1)所攔截到的程式碼重新執行一次才RETURN回去
 
這樣就等於把問題處理掉了,繼續下一行
 
但是現在就是卡在這個MESSAGE(1)的問題上
 
我也找過AERROR(),這攔不到程式碼只有錯誤代碼 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		CCB2000
 
 
  註冊時間: 2009-03-25 文章: 97
 
  第 5 樓
  | 
		 | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		LiuRambo
 
 
  註冊時間: 2007-11-27 文章: 481
 
  第 6 樓
  | 
		
			
				 發表於: 星期五 七月 24, 2009 11:33 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				@@"
 
我的開發環境是VFP6 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 7 樓
  | 
		
			
				 發表於: 星期一 七月 27, 2009 5:26 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				很久沒有用vfp6了,它有 try 的指令嗎?
 
 
TRY
 
     [ tryCommands ] 
 
[ CATCH [ TO VarName ] [ WHEN lExpression ] 
 
     [ catchCommands ] ]
 
[ THROW [ eUserExpression ] ]
 
[ EXIT ]
 
[ FINALLY 
 
     [ finallyCommands ] ] 
 
ENDTRY | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 8 樓
  | 
		
			
				 發表於: 星期一 七月 27, 2009 6:40 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				沒.
 
 
 
不過ERROR() 的確會出現"幾N(某)次"的錯誤. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 9 樓
  | 
		
			
				 發表於: 星期二 七月 28, 2009 10:30 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 沒錯, 小弟也覺得 ASTACKINFO() 似乎必需和ERROR() 交互搭配使用才保險。 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		LiuRambo
 
 
  註冊時間: 2007-11-27 文章: 481
 
  第 10 樓
  | 
		
			
				 發表於: 星期三 八月 05, 2009 11:22 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				@@"
 
所以說除了升級版本,似乎沒救?.....唉 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |