如何使用 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}
我有一个 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}