﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&lt;h1&gt;efa's blog&lt;/h1&gt;-随笔分类-Bi report Tools</title><link>http://www.blogjava.net/davidxu/category/2881.html</link><description>以用户角度出发,你就已经成功一半了.</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 10:37:38 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 10:37:38 GMT</pubDate><ttl>60</ttl><item><title>birt 2.0 is now available....占个头位,宣传一下</title><link>http://www.blogjava.net/davidxu/archive/2006/01/27/29305.html</link><dc:creator>一凡@ITO</dc:creator><author>一凡@ITO</author><pubDate>Fri, 27 Jan 2006 08:58:00 GMT</pubDate><guid>http://www.blogjava.net/davidxu/archive/2006/01/27/29305.html</guid><wfw:comment>http://www.blogjava.net/davidxu/comments/29305.html</wfw:comment><comments>http://www.blogjava.net/davidxu/archive/2006/01/27/29305.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/davidxu/comments/commentRss/29305.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/davidxu/services/trackbacks/29305.html</trackback:ping><description><![CDATA[<H1><A name=top></A>what is BIRT</H1>
<P>BIRT is an open source, Eclipse-based reporting system that integrates with your application to produce compelling reports for both web and PDF. </P>
<P>BIRT provides core reporting features such as report layout, data access and scripting. The current released version is 2.0. Please try BIRT and tell us what you think by filling bugs reports &amp; enhancement requests through Bugzilla as explained on the <A href="http://www.eclipse.org/birt/phoenix/community.php">community</A> page. </P><FONT size=4>
<H1></FONT>New and Notable Features within BIRT 2.0</H1>
<BLOCKQUOTE>
<UL>
<LI>New BIRT Viewer 
<LI>JavaScript/Java Events And Report Debugging 
<LI>Runtime Data Source Property Binding 
<LI>Chart Builder and SVG Output 
<LI>Templates 
<LI>Libraries 
<LI>XML ODA 
<LI>URL Builder 
<LI>Multi-pass Aggregate, Sorting and Filtering 
<LI>Improved Report Performance and PDF Fidelity 
<LI>Dynamic Parameters/Cascading Parameters 
<LI>Expression Builder 
<LI>Importing of Style Sheets 
<LI>Report XML Editor 
<LI>Passing of External Object to Custom Data Sources 
<LI>Stored Procedures 
<LI>CLOB/BLOB Support <BR></LI></UL>
<P>New and Notable Features within BIRT 2.0：<BR><A href="http://www.eclipse.org/birt/phoenix/project/notable2.0.php">http://www.eclipse.org/birt/phoenix/project/notable2.0.php</A><BR><BR>project home:<A href="http://www.eclipse.org/birt/">http://www.eclipse.org/birt/</A><BR><BR><SPAN onclick="img1.style.display=''"><U>new report viewer [截图] </U><SPAN><BR><IMG id=img1 style="DISPLAY: none; WIDTH: 661px; HEIGHT: 481px" height=539 alt="" hspace=0 src="http://www.eclipse.org/birt/phoenix/project/images/toc.jpg" width=721 align=baseline border=0> <BR><SPAN onclick="img2.style.display=''"><U>The Viewer also supports data extraction to CSV format [截图]</U></SPAN> <BR><IMG id=img2 style="DISPLAY: none; WIDTH: 663px; HEIGHT: 491px" height=486 alt="" hspace=0 src="http://www.eclipse.org/birt/phoenix/project/images/export1.jpg" width=644 align=baseline border=0><BR><SPAN onclick="img3.style.display=''"><U>export to CSV [截图]</U></SPAN><BR><IMG id=img3 style="DISPLAY: none" hspace=0 src="http://www.eclipse.org/birt/phoenix/project/images/export3a.png" align=baseline border=0><BR><BR></P>
<P>它的report designer 还独立出来（不用依赖eclipse）直接打开　BIRT.exe　就ＯＫ．</P></BLOCKQUOTE><BR>个人感觉进步了不少，但负责地说一句，应用到实际项目中我猜想还会有不少的问题，还请大家抱学习的态度。<BR><BR>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">马上小试了一下，发现之前好几点疑问都可以不用担心了，基本解决掉了:<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">1</SPAN><SPAN style="COLOR: #000000">．AJAX的分页<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>　　只要自定义好报表</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">grid的宽以及高，实现css分页，初步感觉效果还不错（有待实际应用）<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">2</SPAN><SPAN style="COLOR: #000000">．导出excel<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;支持export&nbsp;to&nbsp;csv（虽然有中文乱码问题），另外当报表没有dataset(静态报表)时好象导不出．<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">3</SPAN><SPAN style="COLOR: #000000">．BIRT&nbsp;and&nbsp;POJOs&nbsp;as&nbsp;datasources&nbsp;example<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http:</SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">tools.osmosis.gr/blog/archives/2005/06/birt_and_object.html</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">4</SPAN><SPAN style="COLOR: #000000">．更人性化，提供四个servlet<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>　a.&nbsp;</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">frameset</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">__report</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">test.rptdesign&nbsp;&nbsp; (工具条,目录导航,分页操作)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;b.</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">preview</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">__report</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">test.rptdesign (工具条,目录导航,分页操作)<BR><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;c.</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">run</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">__report</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">test.rptdesign<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;d.</SPAN><SPAN style="COLOR: #000000">/</SPAN><SPAN style="COLOR: #000000">download</SPAN><SPAN style="COLOR: #000000">?</SPAN><SPAN style="COLOR: #000000">__report</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">test.rptdesign</SPAN></DIV><BR></SPAN></SPAN><img src ="http://www.blogjava.net/davidxu/aggbug/29305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/davidxu/" target="_blank">一凡@ITO</a> 2006-01-27 16:58 <a href="http://www.blogjava.net/davidxu/archive/2006/01/27/29305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>了解jasperreport ,让web报表跑得更好</title><link>http://www.blogjava.net/davidxu/archive/2005/11/28/jasperreportskills.html</link><dc:creator>一凡@ITO</dc:creator><author>一凡@ITO</author><pubDate>Mon, 28 Nov 2005 12:35:00 GMT</pubDate><guid>http://www.blogjava.net/davidxu/archive/2005/11/28/jasperreportskills.html</guid><wfw:comment>http://www.blogjava.net/davidxu/comments/20946.html</wfw:comment><comments>http://www.blogjava.net/davidxu/archive/2005/11/28/jasperreportskills.html#Feedback</comments><slash:comments>30</slash:comments><wfw:commentRss>http://www.blogjava.net/davidxu/comments/commentRss/20946.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/davidxu/services/trackbacks/20946.html</trackback:ping><description><![CDATA[<P><FONT size=5><STRONG>一、为什么是jasperreport<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT size=3>很简单两点：<BR>　　　　１　免费<BR>　　　　２　在大多数开源产品中最能满足本人/公司的需求．<BR>　　&nbsp;&nbsp;&nbsp;&nbsp; 如果要一句话总结那么就是 "适合就好!"&nbsp;，其次再想插一句"其实jasperreport可以做得更好，只是缺少大家去发现。"&nbsp;</FONT><BR><FONT size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在erp软件开发中一套强大易用的报表工具还是相当重要的地位，在这里我只针对一些日常业务报表．</FONT><BR><FONT size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jasperreport + ireport 报表套装在普通的报表中已做得很不错：流水账式的，分组报表都可以轻松实现.在这里提出的是一些相对特别以及少用到的报表设计问题．<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当前版本 : <A href="http://jasperreports.sourceforge.net/">jasperreport&nbsp; </A>1.1.0 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://ireport.sourceforge.net/">ireport&nbsp; </A>: 0.5.2<BR></FONT><BR></FONT><FONT size=5><STRONG>二、问题与解决<BR></STRONG><FONT size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><BR></FONT><STRONG>1.操作<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 初用ireport 设计报表（特别是早期的版本）感觉还是比较原始，相对于<A href="http://www.eclipse.org/birt/">birt</A>&nbsp;类似于在 <FONT face=宋体>Dreamweaver中画</FONT>table 式的设计还是有点差距．但新版本(0.5.2)中也有不小的改善，增加了很多快速对齐，格式化的工具栏以及快捷操作方式．通过结合这些操作还算是方便了不少．<BR><BR><STRONG>2.分页<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 刚接触jasper report ，无论是看其官方的example还是自己动手设计报表,&nbsp; html view 总给人很深的印象："怎么字体那么小，而且实际打印一下，分页功能并没真正实现"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 经过客户一轮的抗义，最终还是下定决心去修补一下，<BR>　　其实jasper report 原理还是挺简单：<BR>　&nbsp;&nbsp; 它默认的分页方式是能过一轮的高度计算，再用两个&lt;br&gt;就以为了事了．</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">table</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">tr</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">td</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">table</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">table</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">br</SPAN><SPAN style="COLOR: #000000">/&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;!--</SPAN><SPAN style="COLOR: #000000">两个br分行标记</SPAN><SPAN style="COLOR: #000000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">br</SPAN><SPAN style="COLOR: #000000">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;</SPAN><SPAN style="COLOR: #000000">table</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">table</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;</SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">td</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">tr</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">&lt;/</SPAN><SPAN style="COLOR: #000000">table</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN></DIV>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解决方案：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好在jasperreport还提供了很好的扩展方案.它允许我们自定义分页方式（就是说在两页/table之间能让我们放自己的代码），自己定义betweenPagesHtml 就ＯＫ了，可以能过ＣＳＳ定义分页．在这里，我就直接改它代码算了．大家可以自己选择.<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>net.sf.jasperreports.engine.export.JRHtmlExporter <BR></P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&lt;!--</SPAN><SPAN style="COLOR: #000000">CSS代码</SPAN><SPAN style="COLOR: #000000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_21_45_Open_Image onclick="this.style.display='none'; Codehighlighter1_21_45_Open_Text.style.display='none'; Codehighlighter1_21_45_Closed_Image.style.display='inline'; Codehighlighter1_21_45_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_21_45_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_21_45_Closed_Text.style.display='none'; Codehighlighter1_21_45_Open_Image.style.display='inline'; Codehighlighter1_21_45_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>pageEnd&nbsp;</SPAN><SPAN id=Codehighlighter1_21_45_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_21_45_Open_Text><SPAN style="COLOR: #000000">{page</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #0000ff">break</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">after:always}</SPAN></SPAN></DIV>
<P>&nbsp;</P>
<DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">&nbsp;(betweenPagesHtml&nbsp;</SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)<BR><IMG id=Codehighlighter1_54_150_Open_Image onclick="this.style.display='none'; Codehighlighter1_54_150_Open_Text.style.display='none'; Codehighlighter1_54_150_Closed_Image.style.display='inline'; Codehighlighter1_54_150_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_54_150_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_54_150_Closed_Text.style.display='none'; Codehighlighter1_54_150_Open_Image.style.display='inline'; Codehighlighter1_54_150_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_54_150_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_54_150_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.write(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&lt;br&nbsp;class=\</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">pageEnd\</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">&gt;</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);&nbsp;&nbsp; // 原来是两个 &lt;br/&gt;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000"><BR><IMG id=Codehighlighter1_181_267_Open_Image onclick="this.style.display='none'; Codehighlighter1_181_267_Open_Text.style.display='none'; Codehighlighter1_181_267_Closed_Image.style.display='inline'; Codehighlighter1_181_267_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_181_267_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_181_267_Closed_Text.style.display='none'; Codehighlighter1_181_267_Open_Image.style.display='inline'; Codehighlighter1_181_267_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN id=Codehighlighter1_181_267_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_181_267_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.write(betweenPagesHtml);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</SPAN></SPAN></DIV><BR><STRONG>3. 打印<BR></STRONG>&nbsp;&nbsp;&nbsp; 　　分页解决后可以发现当报表预览时真的能一页一页分得很好．却又发现了一个问题．报表明显不能满一张Ａ４张大小(ireport 设计选择的是Ａ４纸张),疑惑了一际子，其实不能算是BUG．<BR>　　　ireport&nbsp;报表属性中明显(21 * 29.7 CM)&nbsp;一张Ａ４纸的大小，为什么ＨＴＭＬ出来的效果却明显小的那么多了．其实这与计算机的分辨率有关<BR>　　　计算机中的分辨率，普遍是72 象素/英寸，而打印机普通是300象素/英寸．<BR>　　　jasperreport 与ireport 默认单位是px，我猜想如果用CM做单位的话可以解决这个问题．但在这里我们的做法是尽量加大报表设计时的宽度与高度．另一个要注意的是记得将所有页边距设为0,因为这些设置在打印的时候已在ＩＥ／浏览器中设定了，不用重复．<BR>&nbsp;&nbsp;&nbsp; <BR><STRONG>4.分栏<BR></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;　　以前没多注意,但刚用ireport新版本时可以发现在报表属性设计的时候可以设置栏．这下子如果当报表主体部分列数不多时实现分栏显示，以节省纸张．<BR><BR><STRONG>5.斑马线式显示报表主体<BR>　　　</STRONG>有时我们想让报表更美化，让用户更方便地观看数据，可以设置两种色相隔．这种效果在jasperreport 中的example中有demo一下，大家如果想学习可以下载看看．<BR><BR><STRONG>6.交叉报表<BR></STRONG><BR>　　　关于jasperreport的交叉报表设计网上还是有不小的讨论，而真正实现的不多．我观察过大多用jasperreport实现都是伪交叉报表．并不是真正实现真正的动态行与列．<BR>　　　其实在jaspert report下载包中还是有个交叉报表的实现example(crosstabs)，只不过据我了解，现在ireport还不能实现设计．只能通过手工写jrxml文件实现．本人小试一下，还是挺不错的．<BR>&nbsp; <BR><BR><FONT size=4><FONT size=5><STRONG>三、待研究<BR></STRONG></FONT><FONT size=3>　通过继承net.sf.jasperreports.engine.export.JRHtmlExporter&nbsp;,还是能扩展不小的功能．例如用ＣＳＳ格式化，可以大大减小代码量，动态列／可设列宽度大大增强我们的报表功能．<BR>　现本人初部实现100％宽度，不再用jasperreport中hardcode列度等等,以下三点还有待时间去跟进:)<BR></FONT><BR><FONT size=1></FONT></FONT>1.动态列<BR>　<BR>2.可设列宽度<BR><BR>3.CSS设计<BR>　　<BR><BR><BR>&nbsp;<img src ="http://www.blogjava.net/davidxu/aggbug/20946.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/davidxu/" target="_blank">一凡@ITO</a> 2005-11-28 20:35 <a href="http://www.blogjava.net/davidxu/archive/2005/11/28/jasperreportskills.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[BI] 部分商业智能及报表工具一览</title><link>http://www.blogjava.net/davidxu/archive/2005/08/20/BIReportTools.html</link><dc:creator>一凡@ITO</dc:creator><author>一凡@ITO</author><pubDate>Sat, 20 Aug 2005 04:44:00 GMT</pubDate><guid>http://www.blogjava.net/davidxu/archive/2005/08/20/BIReportTools.html</guid><wfw:comment>http://www.blogjava.net/davidxu/comments/10580.html</wfw:comment><comments>http://www.blogjava.net/davidxu/archive/2005/08/20/BIReportTools.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/davidxu/comments/commentRss/10580.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/davidxu/services/trackbacks/10580.html</trackback:ping><description><![CDATA[<FONT color=#000000><FONT size=4><STRONG><FONT size=5>一、 Microsoft Office Web Components</FONT><BR><BR><IMG height=116 alt=officeComponents.gif src="http://www.blogjava.net/images/blogjava_net/davidxu/officeComponents.gif" width=357 border=0><BR><BR></STRONG>Spreadsheets<BR><STRONG><IMG height=138 alt=excel.gif src="http://www.blogjava.net/images/blogjava_net/davidxu/excel.gif" width=295 border=0></STRONG>&nbsp; </FONT></FONT><BR><STRONG>Charts</STRONG><BR><IMG height=401 alt=chart.gif src="http://www.blogjava.net/images/blogjava_net/davidxu/chart.gif" width=601 border=0><BR><BR><FONT size=4><STRONG><FONT size=5>二、Open Source</FONT><BR><BR>1 、pentaho<BR></STRONG>Project Home Page: </FONT><A href="http://www.pentaho.org/"><STRONG><FONT size=4>http://www.pentaho.org/</FONT></STRONG></A><BR><FONT size=4><IMG height=86 alt=de_logo.png src="http://www.blogjava.net/images/blogjava_net/davidxu/de_logo.png" width=219 border=0><BR><BR><STRONG>2、operni</STRONG></FONT><BR><A href="http://openi.sourceforge.net/"><BR><FONT color=#000000>Project Home Page:</FONT>&nbsp; http://openi.sourceforge.net/</A><FONT color=#800080><BR><U><IMG height=82 alt=openi-logo-with-tag[1].jpg src="http://www.blogjava.net/images/blogjava_net/davidxu/openi-logo-with-tag[1].jpg" width=200 border=0><BR><BR></U><FONT color=#000000>演示:</FONT>&nbsp;&nbsp; <A href="http://demo.openi.org/">http://demo.openi.org/</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#000000>用户：tomcat&nbsp; 密码：shallow</FONT><BR><FONT color=#000000>介绍:</FONT> <U>http://openi.sourceforge.net/open_source_BI-openi_story.PDF</U><BR><BR><BR><FONT color=#000000 size=4><STRONG>3、JasperReports</STRONG></FONT><BR><FONT color=#000000>Project Home Page:</FONT> <A href="http://jasperreports.sourceforge.net/">http://jasperreports.sourceforge.net/</A><BR></FONT><IMG height=25 alt=jasperreports[1].png src="http://www.blogjava.net/images/blogjava_net/davidxu/jasperreports[1].png" width=139 border=0><BR><BR><BR><SPAN class=indextop><STRONG><FONT size=4>4、Eclipse BIRT Project</FONT></STRONG></SPAN> <BR>Project Home Page: <A href="http://www.eclipse.org/birt">http://www.eclipse.org/birt</A><BR><BR><STRONG><FONT size=4>5、jfreechar</FONT></STRONG><BR>Project Home Page: <A href="http://www.jfree.org/jfreechart">http://www.jfree.org/jfreechart<BR></A><BR><BR>其它相关 ：生xsl ，pdf<BR>jakarta poi&nbsp;&nbsp;&nbsp; <A href="http://jakarta.apache.org/poi/">http://jakarta.apache.org/poi/</A><BR>itext&nbsp; <A href="http://www.lowagie.com/iText">http://www.lowagie.com/iText</A><BR>FOP&nbsp; <A href="http://xml.apache.org/fop/index.html">http://xml.apache.org/fop/index.html</A><BR><BR>后注：本站将不定期发布相关的应用文章:)<BR><BR><BR><BR><img src ="http://www.blogjava.net/davidxu/aggbug/10580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/davidxu/" target="_blank">一凡@ITO</a> 2005-08-20 12:44 <a href="http://www.blogjava.net/davidxu/archive/2005/08/20/BIReportTools.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>