我有一个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方法的比较存在问题。在调试中,单个参数方法被调用,但是带有两个参数的方法永远不会被调用。
任何帮助都将不胜感激。
答案 0 :(得分:1)
你的方法
com.rem40.reports.ReportUtils.getCubeXAxisLabelMaxConsequenceProject()
经历了两个版本,对吗?一个接受单个整数参数,另一个版本接受整数和字符串作为参数。请仔细检查您的japser报告是否指向新版本的类文件或库。
另外,请确保您使用的两个字段确实包含有效值
$F{eventProjectId}
$F{eventType}