如何在JasperReports中按需更改变量值

时间:2013-08-14 05:44:19

标签: variables parameters jasper-reports ireport

我正在使用 iReport 。情况如下:

我有一些名为branchID, spType的参数。

我创建了一个名为branchName (string)的变量,默认情况下为null。

我需要做的是,根据branchNamebranchID

的值更改/修改变量spType的值

如何使用If Else使用 JasperReports 执行此操作。它是否具有变量branchName的属性?任何帮助/建议将受到高度赞赏。

2 个答案:

答案 0 :(得分:7)

表达式Jasper报告中的脚本语言是你的朋友!

我可以从您的查询中了解到,您希望根据两个参数的值计算变量的值。简而言之,您希望执行以下操作: -

简单的if-else

If (branchId == 1 && spType == "abc") 
     branchName = "Xyz1";
 else 
     branchName = "Xyz2";

在Jasper脚本语言中,上面的表达式可以写成: -

($P{branchId}==1 && 
 $P{spType} != null &&
 $P{spType}.equals("abc"))?"Xyz1":"Xyz2"

嵌套的If-else

If (branchId == 1 && spType == "abc") 
    branchName = "Xyz1";
 else if (branchId = 2 && spType == "def")
    branchName = "Xyz2"; 
 else 
    branchName = "Xyz3";

贾斯珀表达:

( $P{branchId} ==1 &&
  $P{spType} !=null && 
  $P{spType}.equals("abc") ) ? "Xyz1" :
    (($P{branchId} == 2 &&
      $P{spType} != null &&
      $P{spType}.equals("def")) ? "Xyz2" : "Xyz3");

有关详细信息,请查看本教程: http://www.tutorialspoint.com/jasper_reports/jasper_report_expression.htm

这是一个类似的stackoverflow问题: doing comparison if else in JasperReports

对于核心概念,第页。本pdf中的10个: http://jasperreports.sourceforge.net/JasperReports-Ultimate-Guide-3.pdf

答案 1 :(得分:0)

iReport支持使用expressions编写脚本。

您可以右键单击报表元素,然后单击编辑表达式以打开表达式编辑器。

this answer中的一些有用的注释。