【问题标题】:jasper reports - msg function not accepting more than 4 parameters including patternjasper 报告 - msg 函数不接受超过 4 个参数,包括模式
【发布时间】:2020-03-17 14:40:18
【问题描述】:

所以看来我不能从属性文件中创建一个超过 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)parameter_COD_DOC.getValue())+".message"),((java.lang.String)parameter_PR_YEAR.getValue()),((java .lang.String)parameter_MODULE_NAME.getValue()),((java.lang.String)field_benefit_value.getValue()),((java.lang.String)field_accumulated_value.getValue())); //$JR_EXPR_ID=10$

如果我删除最后一个参数(accumulated_value {3})它将起作用

这是 .properties 文件条目:

letter.product.message = Caro Cliente, Vimos pela presente informar que, em {0} , foi atribuida participação nos resultados ao seu {1} no valor de {2}。 \ Desta forma, o valor acumulado atual da participação nos resultados é de {3}。

【问题讨论】:

    标签: jasper-reports properties-file msg


    【解决方案1】:

    我通过使用 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}", new Object[]{"a", "b", "c", "d", "e"})
    • 我想我尝试了那个解决方案,但我得到了一个相同的错误。
    • 对我来说很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    相关资源
    最近更新 更多