Ms word 在word中使用Velocity和XDocReport创建脚注

Ms word 在word中使用Velocity和XDocReport创建脚注,ms-word,velocity,xdocreport,Ms Word,Velocity,Xdocreport,我试图在Word文档中使用Velocity和XDocReport创建动态脚注,其中脚注包含来自数据的信息 例如,如果我在foreach循环中包含一个脚注引用,然后在脚注本身中创建一个对值的引用,如$firstName,那么脚注将被创建并适当递增。但在每个脚注中,变量只是作为$firstName输出,而不是由其值替换 我尝试了一种变通方法,在循环中我创建了另一个变量。比如: foreach$firstName中的$firstName.values 设置$footnoteName=$firstNam

我试图在Word文档中使用Velocity和XDocReport创建动态脚注,其中脚注包含来自数据的信息

例如,如果我在foreach循环中包含一个脚注引用,然后在脚注本身中创建一个对值的引用,如$firstName,那么脚注将被创建并适当递增。但在每个脚注中,变量只是作为$firstName输出,而不是由其值替换

我尝试了一种变通方法,在循环中我创建了另一个变量。比如:

foreach$firstName中的$firstName.values 设置$footnoteName=$firstName$footnoteName[FN] 终止 [FN]$footnoteName

在这种情况下,$footnoteName变量的值包含在脚注中,但它始终是集合中最后一条记录的值,因此每个脚注都获得相同的值


编辑:$velocityCount变量在插入脚注时会正确递增,因此每个脚注都有不同的值。

您似乎已经在脚注中发布了注释,请参见,但可能需要改进?谢谢。我确实在xdocreport站点上更新了这个bug。希望你能帮我弄明白。我怀疑脚注是在文件的其余部分之后生成的。我相信在docx格式中,脚注是一个单独的xml文件。可能是xdocreport在生成脚注时无法访问每条记录的值,而只能访问最后一次给定给保存这些值的变量的值。我解决了这个问题。在循环之前,我为脚注中需要引用的每个变量创建了一个hashmap变量。例如$fn值。然后在循环中,我在hashmap中插入了一个项:$velocityCount->value。然后在脚注内,我用$fnValues获取该值。获取$velocityCount。注意,只有当循环中的每个记录都生成了脚注时,此解决方案才有效,否则插入脚注的数据似乎与被脚注记录中的数据不匹配。也许还有另一个解决办法。