用iReport制作一个简单的交叉报表

1、  打开iReport软件,【文件】——>New】,选择一个报表模版,(以选择第一个模版为例),然后选择“Open this Template”,

如图1.1所示。进入下一个页面,填写文件名,选择文件的存放位置,单击【下一步】,再点击【完成】。

 

1.1

2、  从【组件面板】中拖拽“StaticText”控件到“Page Header”部分,双击该控件来填写报表的题目——“学生成绩单“(可从“窗口”菜单中

打开【组件面板】)。

 

3、  单击图3.1中的图标,打开如图3.2所示的窗体,在【Reportquery】如图3.2光标所在的位置填写相应的SQL语句:select

s.student_name_,s.subject_name_ as subject, s.grade_ fromstudent s

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你可以在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只在第一页出现了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值