2014-03-19 31 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