如何使用 JasperReports 中的两个参数调用 Java 方法

How do you call a Java method with two parameters from JasperReports

我有一个 JasperReports 的 jrxml 文件,其中包含使用一个 int 参数调用 Java 方法代码。使用单个参数,所有这些都适用于以下代码。 eventProjectid 是一个整数

<textField>
    <reportElement positionType="Float" x="250" y="79" width="103" height="15"/>
    <textFieldExpression><![CDATA[com.rem40.reports.ReportUtils.getCubeXAxisLabelMaxConsequenceProject($F{eventProjectId})]]></textFieldExpression>
</textField>

我需要引入第二个无效的参数,我得到的只是返回一个空值。这是jrxml代码 eventProjectId 是一个整数eventType 是一个字符串

<textField>
    <reportElement positionType="Float" x="250" y="79" width="103" height="15"/>
    <textFieldExpression><![CDATA[com.rem40.reports.ReportUtils.getCubeXAxisLabelMaxConsequenceProject($F{eventProjectId},$F{eventType})]]></textFieldExpression>
</textField>

这是我尝试调用的 Java 代码

public static String getCubeXAxisLabelMaxConsequenceProject(Integer projectId, String eventType){
    ProjectEntity projectEntity = projectService.findById(projectId);

    CubeConfigEntity cubeConfigEntity=cubeConfigService.findByCubeTypeName(eventType,projectEntity.getCubeConfigName());
    if (cubeConfigEntity != null) {
        return cubeConfigEntity.getxAxisName();
    } else {
        return "";
    }
}

需要说明的是,我已尝试将调用调试为不可用。我认为方法签名如何尝试从 jrxml 与 Java 方法进行比较存在问题。在调试中,单参数方法被调用,但带有两个参数的方法永远不会被调用。

如有任何帮助,我们将不胜感激。

你的方法

com.rem40.reports.ReportUtils.getCubeXAxisLabelMaxConsequenceProject()

经历过两个版本吧?一个接受单个整数参数,另一个版本接受一个整数和一个字符串作为参数。请仔细检查您的 japser 报告是否指向 class 文件或库的新版本。

此外,请确保您使用的两个字段具有有效值

$F{eventProjectId}
$F{eventType}