<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>zhjb7</title>
    <description>做技术要耐得住寂寞，付出一般来说总是会有回报的，厚积薄发也是不会有错的。（摘自potian的回复）</description>
    <link>http://zhjb7.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>项目中BIRT报表的应用</title>
        <author>zhjb7</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhjb7.javaeye.com">zhjb7</a>&nbsp;
          链接：<a href="http://zhjb7.javaeye.com/blog/230133" style="color:red;">http://zhjb7.javaeye.com/blog/230133</a>&nbsp;
          发表时间: 2008年08月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近的这个项目本来用润乾报表，但大家都知道润乾很贵，而我们这个项目只是一个100w左右的项目，于是考虑使用开源报表，由我和一个同事来调研比较流行的jasperreport和birt报表。经过调研总结，jasperreport的一个致命伤是不支持导出doc格式，虽说可以导出rtf格式，但大家都知道它们不一样，就单说导出的表格中的文本竟然是一个个的文本框，客户当然不会满意。在说导出的excel，很多行和列都隐藏了，与自己在excel中输入的数据显示差别太大。究其原因，我觉得jasperreport的工作区其实就是个画板，如同photoshop一样，拖拽组件到工作区，靠得是xy绝对定位，这样导出到word，excel这些相对定位的软件中必然会出现如文本框之类的问题。而birt的工作区如同Dreamweaver，是相对定位，把组件拖拽到工作区就和在Dreamweaver中几乎一模一样，能导出doc,xls,ppt,pdf等格式，并且导出后非常兼容，客户也比较满意，我们就决定使用birt。<br /><br />对于birt的入门网上也有很多，就不写了，这里写几个项目中比较实用的功能。<br />1、数据源为JAVABEAN：这个功能其他一些报表如jasperreport也有，个人认为用javabean做数据源既有安全方面的优点，又有处理复杂业务数据来源的好处。安全是因为如果数据源直接连接到jdbc，如果别人通过下载你这个报表文件可以很容易看到数据库地址等信息，即使不能下载也享受不到连接池的好处。当然你可能会说了，我用连接xml的方式可以用连接池啊。恩，是的，这个目的达到了，但如果我们的业务很复杂，单纯用sql语句无法得到我们想要的数据怎么办呢？不行了吧？因此要么你在数据库中写好存储过程来作为数据集，要么就用javabean吧。<br />使用javabean做数据源的具体操作，我也是从网上找的一篇文章才会的。具体到项目中，其实就是在struts的action里写一个方法，来返回一些数据，比如一个list，list里是一个javabean。而在birt里新建数据源时要选择Scripted Data Sourse，新建数据集时选中刚建的数据源，在Output Columns中自己建和javabean里一模一样的属性。之后选中这个数据集，在工作区视图中选择Script视图，在其中的open、fetch和close中写一些类似java有类似JavaScript的语句。<br />比如在open中写<br />。。。忙，有空接着写
          <br/>
          <span style="color:red;">
            <a href="http://zhjb7.javaeye.com/blog/230133#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Aug 2008 13:50:12 +0800</pubDate>
        <link>http://zhjb7.javaeye.com/blog/230133</link>
        <guid>http://zhjb7.javaeye.com/blog/230133</guid>
      </item>
      <item>
        <title>决定开始写技术博客了</title>
        <author>zhjb7</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhjb7.javaeye.com">zhjb7</a>&nbsp;
          链接：<a href="http://zhjb7.javaeye.com/blog/230119" style="color:red;">http://zhjb7.javaeye.com/blog/230119</a>&nbsp;
          发表时间: 2008年08月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          以前一直在新浪写一些个人的生活和感想博客，对于写技术方面的博客现在打算开始写了。之前没有写一方面是个人的技术怕写出来让各位javaeyer笑话，另一方面也是有点懒吧，总觉得要写的不多。<br />毕业后在公司工作一个多月了，现在想想写写技术博客既可以总结沉淀学过的技术，又可以锻炼下自己的写作功底，至于技术水平差不差就不怕别人笑话了，自己的提高才是最重要的。
          <br/>
          <span style="color:red;">
            <a href="http://zhjb7.javaeye.com/blog/230119#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Aug 2008 13:05:58 +0800</pubDate>
        <link>http://zhjb7.javaeye.com/blog/230119</link>
        <guid>http://zhjb7.javaeye.com/blog/230119</guid>
      </item>
  </channel>
</rss>