我目前正在处理一些合同,我的freemarker宏工作正常。但是现在我必须使用相同的宏两次并且我得到报告:期望一个哈希,但这被评估为一个数字 似乎同样的宏不能两次做同样的事情,我目前使用的宏是:
[#macro TeilbetragProzent]
[#assign gesamt = ((verkaufsauftrag.beteiligungGesamt)!"") /]
[#assign nominale = ((nominale.betrag)!"")/]
[#if (gesamt?string)!=""]
[#assign prozent = ((nominale/gesamt)*100)/]
${(prozent)?string["0.##"]}
[#else]100
[/#if]
[/#macro]
我试着稍微改变一下:
[#macro TeilbetragProzent2]
[#assign gesamt2 = ((verkaufsauftrag.beteiligungGesamt)!"") /]
[#assign nominale2 = ((nominale2.betrag2)!"")/]
[#if (gesamt2?string)!=""]
[#assign prozent2 = ((nominale2/gesamt2)*100)/]
${(prozent2)?string["0.##"]}
[#else]100
[/#if]
[/#macro]
仍然没有工作......我错过了什么吗?
答案 0 :(得分:0)
而不是宏中的问题,我相信你的问题在于第二个赋值指令:[#assign nominale = ((nominale.betrag)!"")/]
。您正尝试将哈希变量betrag
中的节点nominale
的值(可能是基于错误消息的数字)分配给同名变量nominale
。如果您将变量名称更改为某些内容,我认为您将获得成功。
[#macro TeilbetragProzent]
[#assign gesamt = ((verkaufsauftrag.beteiligungGesamt)!"") /]
[#assign nom = ((nominale.betrag)!"")/]
[#if (gesamt?string)!=""]
[#assign prozent = ((nom/gesamt)*100)/]
${(prozent)?string["0.##"]}
[#else]100
[/#if]
[/#macro]