`

ireport 参数换行处理

    博客分类:
  • WARN
阅读更多
ireport中的几个小问题:
1.ireport 中对于$F{propertyName},$V{variableName}如何换行
2.ireport中如果静态文本太多如何换行
3.ireport中如何解决换行导致的单元格对不齐问题
4.在ireport中如何把java.util.Date属性显示成yyyy-MM-dd形式,默认ireport的Date显示形式为"09-10-11 上午12:00"
5.ireport使用java.math.BigDecimal进行精确的数值运算

前置条件:
这里讲的换行,是ireport根据显示数据元素$F{propertyName},$V{variableName}的宽度和数据内容进行自动换行,而非自己设置的换行
解决:
1.对于$F{propertyName},$V{variableName}只需在属性表中选中Stretch With Overflow即可
2.ireport中静态标记label不支持多行显示(目前个人理解),那么当要显示很多静态文本,而列头不够大,那该怎么办?
解决办法:我们定义一个$V{variableName}变量,变量的值默认为要显示的静态文本,那么此时我们只有对$V{variableName}进行1同样设置即可
3.鉴于ireport中显示的表格是拼凑出来(由每一个单独的单元格组成),要显示表行效果那么要求每个单元格高度是一样的,如果在显示时
一个单元格由于内容太多而换行了,而其它没换行那么其显示高度肯定不一致了(具体看图ireport中$F{}换行后导致单元格对不齐问题.bmp),此时我们
只要把该行所有单元格的属性Stretch Type="relative to band height"即可
4.对于ireport以javabean做数据源,且要显示的记录中有数据类型为java.util.Date的属性。
如果直接显示该属性那么页面显示日期格式为 "09-10-11 上午 12:00" 而我们要求显示日期格式为yyyy-MM-dd
那么此时我们可以这样做:定义变量$V{variableName}其表达式为 "new java.sql.Date($F{日期属性}.getTime()).toString()",此时直接用该变量代替$F{日期属性}即可

单元格对不齐

$F{}换行

label换行

分享到:
评论
3 楼 jc_dreaming 2010-01-15  
要使用参数的形式,必须给你的报表配置参数


public void publicMethod(ActionMapping mapping, ActionForm form,
Map parameters, File reportFile, HttpServletRequest request,
HttpServletResponse response) throws Exception {

JasperPrint jasperPrint = null;
Connection conn = dataSource.getConnection();
try {
JasperReport jasperReport = (JasperReport) JRLoader
.loadObject(reportFile.getPath());

jasperPrint = JasperFillManager.fillReport(jasperReport,
parameters, conn);


request.getSession().setAttribute("jasperReport", jasperPrint);

} catch (JRException e) {
.......
}
}
2 楼 jc_dreaming 2010-01-15  
终于通过测试了...
呵呵,我们在使用ireport时会使用variables,parameters,fields!
其中fields:是数据库中的字段,直接在报表中使用数据库相关信息,$F{filedsName}表示。
variables:这是报表逻辑元素中使用,我经常用于统计报表时,$v{name}表示。
根据你表达式$p{id},知道使用参数的形式,是你的应用所需要提供给报表的入口。
这里我提供给你我写的相关代码实现:


//读取报表文件
		File reportFile = new File(context.getRealPath(reportFilePath));
		//设置参数
		Map parameters = new HashMap();
		parameters.put("startDate", caseStartDate);
		parameters.put("endDate", caseEndDate);
		parameters.put("receive", count1 + "");
		parameters.put("receiveConv", count1Conv + "");
		parameters.put("receiveSp", count1Sp + "");	
		parameters.put("finish", count2 + "");
		parameters.put("finishConv", count2Conv + "");
		parameters.put("finishSp", count2Sp + "");
		parameters.put("overtime", count3 + "");
		parameters.put("overtimeConv", count3Conv + "");
		parameters.put("overtimeSp", count3Sp + "");
		parameters.put("userName", user.getUserName());
		//封装调用报表程序...
		publicMethod(mapping, form, parameters, reportFile, request, response);


那么在看看报表截图:

1 楼 leifeng2 2010-01-13  
请问一下,我这个静态文本中传递的参数怎么不显示:

<staticText>
<reportElement x="98" y="110" width="349" height="125"/>
<textElement/>
<text>
<![CDATA[沙发上的范德萨上的 $p{id}  风景的说法都是飞]]>
</text>
</staticText>

其中,$P{id}是我的参数,怎么样才能在预览的时候显示我传递进来的id值?

相关推荐

    ireport 几个小知识总结

    这些知识点涵盖了Ireport在处理中文字符、字段显示、动态SQL、条件打印以及报表输出到打印机等方面的基础操作,是进行报表设计和开发时经常会用到的技术点。掌握这些技巧,能帮助开发者更高效地利用Ireport创建和...

    iReport 4.5 学习笔记

    ##### 5.4 iReport 中自动换行的设置 - **文本框属性**:选中文本框,设置自动换行选项。 - **宽度限制**:根据文本框的宽度自动换行。 - **高度调整**:自动调整文本框的高度以适应所有文本内容。 #### 六、...

    iReport-4.0.1.zip

    在4.0.2版本之后,部分用户报告了换行后文字叠字的问题,这可能是由于软件内部的排版算法或字体处理机制出现了异常。因此,4.0.1版本因其稳定性和无此类问题,成为了许多开发者的首选。 iReport的核心功能主要集中...

    ireport 难点

    4. 溢出处理:当内容超过页面限制时,可以设置溢出策略,如自动缩小字体、换行或裁剪内容。 5. 页面尺寸和方向:根据需要调整页面大小(如A4、信纸等)和方向(纵向或横向),影响分页效果。 以上是对IReport中布局...

    jasperreports打印word格式报表的问题

    8. **代码审查**:检查代码中处理Word输出的部分,确保在生成报表时正确处理了页面设置、页眉页脚、边距等问题。 9. **单元测试**:编写针对特定格式问题的单元测试,可以帮助确定修复是否有效,并防止未来回归。 ...

Global site tag (gtag.js) - Google Analytics