<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>gjl2008yn</title>
    <description></description>
    <link>http://gjl2008yn.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>在netBeans下实现报表功能</title>
        <author>gjl2008yn</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gjl2008yn.javaeye.com">gjl2008yn</a>&nbsp;
          链接：<a href="http://gjl2008yn.javaeye.com/blog/186582" style="color:red;">http://gjl2008yn.javaeye.com/blog/186582</a>&nbsp;
          发表时间: 2008年04月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp; 最近一个项目中要求报表打印功能,而在Java中一直没有找到合适的报表设计工具。到网上找了好久， 8) 终于被我找到了&mdash;&mdash;就是iReport，它是基于JasperReports的报表设计工具。<br />&nbsp; 我下载的是它的netbeans插件版，安装和使用起来都非常方便。那么我在这里谈一下的它的下载、安装到使用。</p>
<p>&nbsp; 1 下载：请点击这个链接下载：<a href="http://sourceforge.net/project/showfiles.php?group_id=64348&amp;package_id=263429">http://sourceforge.net/project/showfiles.php?group_id=64348&amp;package_id=263429</a><br />&nbsp; 在下载这个插件之前，你还需要下载netbeans 6.0.1或 6.1 版可以到<a href="http://www.netbeans.org">http://www.netbeans.org</a>网站上去下载。<br />&nbsp; 2 安装：看下面的图解。<br />&nbsp; 下载完成后，先安装netbeans，启动netbeans，选择&ldquo;工具-插件-已下载-添加插件&rdquo;如下图：</p>
<p>&nbsp;<img src="../../upload/picture/pic/12849/be9e5f54-a9c9-334c-ba33-14fa199aa46d.jpg" height="554" alt="" style="VERTICAL-ALIGN: middle" width="869" /></p>
<p>选择你下好的&ldquo;iReport-nb-0.9.1.nbm&rdquo;插件，然后点击&ldquo;安装&rdquo;这样插件就可以安装了。</p>
<p>3 安装之后，我们先设计一个报表。</p>
<p>先使用&ldquo;服务&rdquo;创建一个数据库连接：</p>
<p>添加驱动（右键，新建驱动程序），如果你使用的是SQL SERVER数据库请到这里下载驱动：</p>
<p><img src="../../upload/picture/pic/12853/41d57d52-da9c-3b17-b213-0dc623eadf4d.jpg" height="304" alt="" width="330" /></p>
<p>在&ldquo;数据库&rdquo;上&ldquo;右键&rdquo;点击&ldquo;新建连接...&rdquo;选择你下载并解压后的驱动程序包&ldquo;sqljdbc.jar&rdquo;，然后再创建连接：</p>
<p>&nbsp;<img src="../../upload/picture/pic/12855/5b0b85d4-d06f-37a3-99df-188f2a4ae77b.jpg" height="287" alt="" width="315" /></p>
<p>设置连接信息，这是连接SQL SERVER 2005 或 2000的设置：</p>
<p><img src="../../upload/picture/pic/12857/faa34ef4-bcff-3cf9-85fb-21d12b930e70.jpg" height="366" alt="" width="529" /></p>
<p>如果添加成功，在&ldquo;服务&mdash;&mdash;数据库&rdquo;下会出现下列的连接（可以点击右键选择&ldquo;连接...&rdquo;，使它连接到数据库）：</p>
<p>&nbsp;<img src="../../upload/picture/pic/12859/57c198ab-06d2-3ecd-b2d4-7236a56d745a.jpg" height="25" alt="" width="454" /></p>
<p>4 报表数据库源添加，在工具栏上点击这个按钮：</p>
<p><img src="../../upload/picture/pic/12851/20d42ffd-1af5-3469-9a97-206d55673b87.jpg" height="79" alt="" style="FLOAT: left" width="302" /></p>
<p><br /><br />&nbsp;</p>
<p>&nbsp;</p>
<p>会出现</p>
<p><img src="../../upload/picture/pic/12861/206c92cd-df7f-3533-999a-a7cfa900867d.jpg" height="500" alt="" width="490" /></p>
<p>这时点击&ldquo;new&rdquo;，选择&ldquo;NetBeans Database JDBC connection&rdquo;</p>
<p><img src="http://www.jasperforge.org/jaspersoft/opensource/business_intelligence/ireport/tutorials/tutorial1_6.png" height="433" alt="" width="448" /></p>
<p>选择你新建的连接，输入一个&ldquo;Name&rdquo;如图：</p>
<p><img src="../../upload/picture/pic/12863/fd6dae55-e18c-364b-986f-96b2331d5d21.jpg" height="532" alt="" width="448" /></p>
<p>5 制作报表。</p>
<p>在netbeans中新建一个普通的Java项目（&ldquo;文件&mdash;&mdash;新建项目...&rdquo;）：</p>
<p><img src="../../upload/picture/pic/12865/e588dec9-3698-3b72-b97e-3a17991621ee.jpg" height="504" alt="" width="729" /></p>
<p>新建项目后，再新建一个报表文件（&ldquo;文件&mdash;&mdash;新建文件...&rdquo;）：</p>
<p>&nbsp;<img src="../../upload/picture/pic/12867/e700abe9-dd86-30fa-9107-c59097208861.jpg" height="504" alt="" width="729" /></p>
<p>在后面的向导中选择文件存放的位置，再选择相应的数据库源，之后（编写查询或使用&ldquo;Design Query&rdquo;设置一个查询）：</p>
<p><img src="../../upload/picture/pic/12871/e2b6e735-6149-38c5-862e-b755bf5f772d.jpg" height="504" alt="" width="729" /></p>
<p>再选择报表中要使用的列：</p>
<p><img src="../../upload/picture/pic/12873/b55636ee-4675-322e-aaca-9bf56b4ced6c.jpg" height="504" alt="" width="729" /></p>
<p>选择分组字段：</p>
<p>&nbsp;&nbsp;<img src="../../upload/picture/pic/12875/ccabc6f3-4ca2-30a8-b4e3-249cba4aed8b.jpg" height="504" alt="" width="729" /></p>
<p>&ldquo;下一步&rdquo;选择风格：</p>
<p><img src="../../upload/picture/pic/12877/255caa1f-2a23-34fe-99cb-2f9edd662910.jpg" height="504" alt="" width="729" /></p>
<p>&ldquo;下一步&mdash;&mdash;完成&rdquo;形成报表，点击&ldquo;Preview&rdquo;预览效果：</p>
<p><img src="../../upload/picture/pic/12879/c328103a-165a-32f5-bf7f-2ee679179075.jpg" height="849" alt="" width="1085" /></p>
<p>6 在应用程序中使用你的报表。</p>
<p>为你的应用程序添加&ldquo;库&rdquo;：</p>
<p>&nbsp;<img src="../../upload/picture/pic/12881/9ff5173b-a603-36bf-94b1-3ee55e03c34f.jpg" height="351" alt="" width="234" /></p>
<p>选择库：</p>
<p>&nbsp;<img src="../../upload/picture/pic/12883/f163aae6-f981-3106-8022-9d6a128bdc69.jpg" height="333" alt="" width="358" /></p>
<p>编写代码测试：</p>
<p>请新建一个类或使用项目的&ldquo;Main&rdquo;类编写如下代码，让你的应用程序使用你刚刚设计的报表：</p>
<pre name="code" class="java">package testireport;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;

/**
 *
 * @author GuoJun-ling
 */
public class NewClass {

    public static void main(String[] args) {
        JasperReport jasperReport;
        JasperPrint jasperPrint;
        try {
            InputStream inReport = NewClass.class.getResourceAsStream("report1.jrxml");
            
            jasperReport = JasperCompileManager.compileReport(inReport);
            // 建立连接
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String strUrl = "jdbc:sqlserver://localhost:1433;DatabaseName=pubs";
            Connection con = DriverManager.getConnection(strUrl, "sa", "sa");
            Statement stmt = con.createStatement();


            // 在使用iReport设计了报表之后可以使用连接对象直接填充报表。
            jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), con);
            // 打印预览
            JasperViewer.viewReport(jasperPrint);
            // 关闭资源
            //rs.close();
            stmt.close();
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://gjl2008yn.javaeye.com/blog/186582#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 25 Apr 2008 06:46:19 +0800</pubDate>
        <link>http://gjl2008yn.javaeye.com/blog/186582</link>
        <guid>http://gjl2008yn.javaeye.com/blog/186582</guid>
      </item>
  </channel>
</rss>