2014-03-19 55 views
0

這裏有一個類似的問題,但接受的答案會導致我的錯誤。下面是我運行的代碼示例:我通過ID的數據集,其習慣於創造x個PDF文件,其文件名是ID的循環cfdocument循環導致例程不能被聲明多於一次

<cfloop query="var_recv_num_qry"> 
<cfdocument filename="#var_recv_num#.pdf" format="PDF"> 
.... 
</cfdocument> 
</cfloop> 

基本上,該文件被保存到服務器。在將循環限制爲一次迭代時運行該代碼(按照預期(在磁盤上創建pdf))運行時,但在循環多次循環時,會遇到以下錯誤:

例程不能多次聲明。
例程localUrl已在不同的模板中聲明兩次。

我發現這個問題的一些提CF8修補程序得到解決,但我跑CF9.0.1

任何幫助深表感謝。謝謝。

回答

0

您是否在循環內部使用CFINCLUDE?如果是這樣,包含文件是否定義了一個名爲「localUrl」的函數?循環將在每次迭代中包含該文件,導致聲明多個具有相同名稱的函數。 ColdFusion不會覆蓋函數的前一個定義,它會拋出類似的錯誤。

+0

這是最初的情況,我把這個函數的聲明帶出循環,但錯誤仍然發生。 – user1489298

+0

只是爲了咯咯地笑,我拿出了我在調用loop和cfdocument中的localURL函數的代碼。這完成了預期!不知道爲什麼Coldfusion會在循環中調用函數聲明時抱怨。 – user1489298

+0

感覺很像CF在某處緩存模板。你清除了模板緩存嗎? – barnyr