- 浏览: 1892880 次
- 性别:
- 来自: 合肥
-
文章分类
- 全部博客 (514)
- OPEN (41)
- WARN (33)
- EXPER (16)
- RESOURCE (7)
- TOOL (4)
- DWR (10)
- Struts1.x (10)
- Ibtais (18)
- MyEclipse (30)
- Sql Server (64)
- Tomcat (7)
- APACHE (4)
- JSP (18)
- SERVLET (6)
- ENGLISH (0)
- ECSide (8)
- JasperReports (7)
- JAVA (24)
- JS (42)
- XML (26)
- CVS (8)
- Mind (1)
- JQUERY (2)
- IBATIS (6)
- PROJECT (0)
- STRUTS2 (0)
- PROXOOL (0)
- SPRING (4)
- Hibernate (0)
- SSI (0)
- JBPM (11)
- FLEX (3)
- JSON (2)
- GWT (1)
- jeecms v3 (1)
- Flash (2)
- DATA (1)
- ORACLE (3)
- 查询oracle 中逗号分隔字符串中所有值 (1)
最新评论
-
小小西芹菜:
GoEasy web三步轻松实现web实时推送1. 引入goe ...
服务器推送技术 java -
kg_1997:
这个方法太棒了,可以不用to_date函数,实在是棒!!!
java/oracle日期处理 -
wodesunday:
:idea:
SQL的分段统计查询语句 -
wodesunday:
引用
SQL的分段统计查询语句 -
BlueSkator:
讲的有点浅,没有深入进去
tomcat需要的重新发布和重启服务器的几种情况
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换行
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) {
.......
}
}
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},知道使用参数的形式,是你的应用所需要提供给报表的入口。
这里我提供给你我写的相关代码实现:
那么在看看报表截图:
呵呵,我们在使用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值?
<staticText>
<reportElement x="98" y="110" width="349" height="125"/>
<textElement/>
<text>
<![CDATA[沙发上的范德萨上的 $p{id} 风景的说法都是飞]]>
</text>
</staticText>
其中,$P{id}是我的参数,怎么样才能在预览的时候显示我传递进来的id值?
发表评论
-
Eclipse中HashMap/Hashtable出现警告Type safety本篇文章来源于:开发学院 http://edu.codepub.com 原文
2010-08-03 13:08 2233症状: Type safety: The method pu ... -
Content is not allowed in prolog.
2010-08-03 10:51 4267读取XML时出现错误: 2010-08-03 10:52:2 ... -
进程被死锁
2010-07-16 11:45 2399错误: 引用 2010-07-15 11 ... -
java.lang.UnsupportedClassVersionError: Bad version number in .class file
2010-05-13 20:11 1332tomcat启动报错,发现错误版本 、 严重: Error d ... -
Oracle: ORA-00911: 无效字符
2010-04-22 10:41 6874Oracle: java.sql.SQLException: ... -
解决 无法解析导入 javax.servlet.ServletContextEvent
2010-02-09 11:24 5312启动tomcat报错了: 严重: Error configu ... -
...NeedsRefreshException问题分析
2010-02-07 16:44 3854com.opensymphony.oscache.base. ... -
JVMTI_ERROR_NULL_POINTER(100)
2010-01-27 16:49 1992JDWP exit error JVMTI_ERROR_NUL ... -
Couldn't perform the operation prepareCall
2010-01-08 09:43 5608[code="sql"]- ... -
tomcat ClassNotFoundException
2010-01-05 10:49 1230严重: Exception starting filter ... -
javax.servlet.servletexception cannot find actionmappings or actionformbeans col
2010-01-03 11:22 1781异常:javax.servlet.ServletExcepti ... -
错误1111
2010-01-02 14:28 1952org.springframework.jdbc.Un ... -
Cannot resolve reference to bean 'pingFenRecService' while setting bean property
2010-01-02 11:23 5305玩转SSI时重启服务器报错,郁闷啦,怎么可能呢?还报配置出错. ... -
解决为'MM_CURSOR' 的游标已存在问题
2009-12-09 14:45 3896今天写了个存储过程,使用了两个游标,在数据库里实现嵌套多层循环 ... -
TOMCAT 6 警告:Parameters:Invalid chunk ignored 的解决
2009-12-08 11:04 1659编写程序后,重启tomcat,出现警告:Parameters: ... -
解决:sql 排序规则不一致问题
2009-12-03 13:48 4765把程序部署到服务器上 ... -
Ibatis : Attribute "*" must be declared for element type "result".
2009-11-25 16:29 4330整合一Ibatis,竟然报错了! Caused by: com ... -
在建立与服务器的连接时出错。在连接到 sql server 2005 时 在默认的设置下 sql server 不允许进行远程连
2009-11-24 15:21 43903今天连接数据库时突然 ... -
Ibatis :The error occurred while applying a parameter map.
2009-11-18 10:03 23412项目需求变更在修改源程序时,要涉及数据库变动,大刀阔斧一般之后 ... -
Myeclipse:resource is out of sync with the file system的解决办法
2009-11-13 17:50 3960引用在eclipse中,启动run on server时报错: ...
相关推荐
这些知识点涵盖了Ireport在处理中文字符、字段显示、动态SQL、条件打印以及报表输出到打印机等方面的基础操作,是进行报表设计和开发时经常会用到的技术点。掌握这些技巧,能帮助开发者更高效地利用Ireport创建和...
##### 5.4 iReport 中自动换行的设置 - **文本框属性**:选中文本框,设置自动换行选项。 - **宽度限制**:根据文本框的宽度自动换行。 - **高度调整**:自动调整文本框的高度以适应所有文本内容。 #### 六、...
在4.0.2版本之后,部分用户报告了换行后文字叠字的问题,这可能是由于软件内部的排版算法或字体处理机制出现了异常。因此,4.0.1版本因其稳定性和无此类问题,成为了许多开发者的首选。 iReport的核心功能主要集中...
4. 溢出处理:当内容超过页面限制时,可以设置溢出策略,如自动缩小字体、换行或裁剪内容。 5. 页面尺寸和方向:根据需要调整页面大小(如A4、信纸等)和方向(纵向或横向),影响分页效果。 以上是对IReport中布局...
8. **代码审查**:检查代码中处理Word输出的部分,确保在生成报表时正确处理了页面设置、页眉页脚、边距等问题。 9. **单元测试**:编写针对特定格式问题的单元测试,可以帮助确定修复是否有效,并防止未来回归。 ...