ireport制作报表,添加查询条件

ireport制作报表,添加查询条件

如果我们报表运行在系统中,参数需要从程序中传入,下面来实现:

1.在报表信息面板的Parameters节点下添加两参数,重命名为RPT_SAL和RPT_HIREDATE:
在这里插入图片描述
2.在sql里加上这俩参数,美元符号+P+花括号:
在这里插入图片描述
3.再preview时,就要求填写参数值了:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以在iReport中使用一个特殊的变量"$V{PAGE_NUMBER}"来判断当前页码是否为第一页,从而控制PageHeader的显示。 具体操作步骤如下: 1. 右键点击报表设计区域,选择“Report Properties”,打开报表属性设置窗口。 2. 在“Parameters”选项卡中,点击“Add”按钮,添加一个参数,命名为“isFirstPage”,类型为“java.lang.Boolean”。 3. 在“Variables”选项卡中,点击“Add”按钮,添加一个变量,命名为“pageHeaderDisplayed”,类型为“java.lang.Boolean”,初始值为“false”。 4. 在报表设计区域中添加一个PageHeader元素,并在其中添加需要显示的内容。 5. 右键点击PageHeader元素,选择“Properties”,打开元素属性设置窗口。在“Print When Expression”文本框中输入以下表达式: $V{PAGE_NUMBER} == 1 && $P{isFirstPage} == true && $V{pageHeaderDisplayed} == false 这个表达式的意思是:如果当前页码为1,并且isFirstPage参数为true,并且pageHeaderDisplayed变量为false,则显示PageHeader元素。 6. 在PageHeader元素的“Properties”窗口中,找到“Print When Expression”属性下方的“Evaluation Time”选项,选择“First Page”。 7. 在报表的Java代码中设置isFirstPage参数为true,并在PageFooter中设置pageHeaderDisplayed变量为true,以确保PageHeader只在第一页出现。 参考代码如下: ``` Map<String, Object> params = new HashMap<String, Object>(); params.put("isFirstPage", true); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource); // 在PageFooter中设置pageHeaderDisplayed变量为true JRDesignVariable pageHeaderDisplayed = new JRDesignVariable(); pageHeaderDisplayed.setName("pageHeaderDisplayed"); pageHeaderDisplayed.setValueClass(Boolean.class); pageHeaderDisplayed.setResetType(ResetTypeEnum.REPORT); pageHeaderDisplayed.setCalculation(CalculationEnum.NOTHING); pageHeaderDisplayed.setIncrementerFactoryClass(DefaultIncrementerFactory.class); pageHeaderDisplayed.setIncrementerFactoryClassName(DefaultIncrementerFactory.class.getName()); pageHeaderDisplayed.setInitialValueExpression(new JRDesignExpression(Boolean.FALSE)); jasperDesign.addVariable(pageHeaderDisplayed); ``` 这样就可以实现PageHeader只在第一页出现了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值