Jasper reports jasper reports-消息函数不接受超过4个参数,包括模式

Jasper reports jasper reports-消息函数不接受超过4个参数,包括模式,jasper-reports,properties-file,msg,Jasper Reports,Properties File,Msg,因此,我似乎无法从属性文件中创建一个包含3个以上参数和模式的字符串: msg(str("lifeletter."+$P{COD_DOC}+".message"),$P{PR_YEAR},$P{MODULE_NAME},$F{benefit_value},$F{accumulated_value}) 我得到这个错误: 类型JREvaluator中的方法msg(String,Object,Object,Object)不适用于参数(String,String,String,String,String

因此,我似乎无法从属性文件中创建一个包含3个以上参数和模式的字符串:

msg(str("lifeletter."+$P{COD_DOC}+".message"),$P{PR_YEAR},$P{MODULE_NAME},$F{benefit_value},$F{accumulated_value})
我得到这个错误:

类型JREvaluator中的方法msg(String,Object,Object,Object)不适用于参数(String,String,String,String,String) value=msg(str(“lifeletter.”+((java.lang.String)参数_COD_DOC.getValue())+“.message”),((java.lang.String)参数_PR_YEAR.getValue()),((java.lang.String)参数_MODULE_NAME.getValue()),((java.lang.String)字段_benefit_value.getValue()),((java.lang.String)字段_累计值.getValue())//$JR_EXPR_ID=10$

如果我删除最后一个参数(累积值{3}),它将工作

以下是.properties文件条目:

letter.product.message=Caro客户,Vimos pela展示信息,em{0},在参与过程中没有任何价值\ 在形式上,所有参与者都能从中受益


我通过使用java类MessageFormat解决了这个问题:

new MessageFormat(str("pattern")).format(new Object[]{"value 1","value 2", "value 3","value 4"})

您还可以将数组传递给msg函数。正如在msg(“message{0}{1}{2}{3}{4}”,新对象[]{“a”,“b”,“c”,“d”,“e})中一样,我想我尝试了这个解决方案,得到了一个相同的错误。对我来说效果很好。