<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Natty's blog &#187; jasper</title>
	<atom:link href="http://nattyait.wordpress.com/category/jasper/feed/" rel="self" type="application/rss+xml" />
	<link>http://nattyait.wordpress.com</link>
	<description>Stay hungry. Stay foolish. -- Steve Jobs</description>
	<lastBuildDate>Sun, 27 Dec 2009 12:00:21 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='nattyait.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/34cd372466ad9d5684fd7f486f9f094b?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Natty's blog &#187; jasper</title>
		<link>http://nattyait.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://nattyait.wordpress.com/osd.xml" title="Natty&#8217;s blog" />
		<item>
		<title>[Jasper] run Jasper Report from Java class</title>
		<link>http://nattyait.wordpress.com/2008/10/03/jasper-java-clas/</link>
		<comments>http://nattyait.wordpress.com/2008/10/03/jasper-java-clas/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 10:42:10 +0000</pubDate>
		<dc:creator>natty</dc:creator>
				<category><![CDATA[jasper]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://nattyait.wordpress.com/?p=112</guid>
		<description><![CDATA[จริงๆ ก่อนหน้าจะเขียนเรื่องนี้ ควรเขียนการ run Jasper Report from JSP ก่อนนะเนี่ย แต่ไม่เป็นไร เอาอันนี้ก่อน
ได้วิธีการมาจาก ที่นี่ แต่ต่างกันที่ code การติดต่อ database นิดหน่อย และเราจะทำมันใน eclipse ไม่ได้รันแบบที่เค้าทำ

ก่อนอื่นสร้าง eclipse project เป็น java project แล้วเอา lib ต่อไปนี้ไปใส่ไว้ใน build path ของ eclipse

common-collection
 common-logging
 iReport
 commons-javaflow
 jasperreports
 common-digester
 common-beanutils
mysql-java-connector

และสร้าง ReportDriver.java ขึ้นมา ดังนี้
import java.sql.*;

import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.JasperReport;

import java.io.OutputStream;

public class ReportDriver {
/**
* Constructor for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nattyait.wordpress.com&blog=4817581&post=112&subd=nattyait&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>จริงๆ ก่อนหน้าจะเขียนเรื่องนี้ ควรเขียนการ run Jasper Report from JSP ก่อนนะเนี่ย แต่ไม่เป็นไร เอาอันนี้ก่อน</p>
<p>ได้วิธีการมาจาก <a href="http://www.cise.ufl.edu/~otopsaka/CIS4301/ReportDemo/ReportFromJava.html">ที่นี่</a> แต่ต่างกันที่ code การติดต่อ database นิดหน่อย และเราจะทำมันใน eclipse ไม่ได้รันแบบที่เค้าทำ</p>
<p><span id="more-112"></span></p>
<p>ก่อนอื่นสร้าง eclipse project เป็น java project แล้วเอา lib ต่อไปนี้ไปใส่ไว้ใน build path ของ eclipse</p>
<ul>
<li>common-collection</li>
<li> common-logging</li>
<li> iReport</li>
<li> commons-javaflow</li>
<li> jasperreports</li>
<li> common-digester</li>
<li> common-beanutils</li>
<li>mysql-java-connector</li>
</ul>
<p>และสร้าง ReportDriver.java ขึ้นมา ดังนี้</p>
<pre class="brush: java;">import java.sql.*;

import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.JasperReport;

import java.io.OutputStream;

public class ReportDriver {
/**
* Constructor for ReportDriver
*/
public ReportDriver() {
}
public static Connection connectDB(String databaseName, String userName, String password) {
Connection jdbcConnection = null;
try{
Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance();
String connectionURL = &quot;jdbc:mysql://127.0.0.1:3306/test?user=root;password=root&quot;;
jdbcConnection = DriverManager.getConnection(connectionURL,userName,password);
}catch(Exception ex) {
String connectMsg = &quot;Could not connect to the database: &quot; + ex.getMessage() + &quot; &quot; + ex.getLocalizedMessage();
System.out.println(connectMsg);
}
return jdbcConnection;
}

/**
* Takes 4 parameters: databaseName, userName, password, reportFileLocation
* and connects to the database and prepares and views the report.
* @param databaseName holds database name,
* @param userName holds user name
* @param password holds password to connect the database,
* @param reportFile holds the location of the Jasper Report file (.jrxml)
*/
public static void runReport(String databaseName, String userName, String password,String reportFile) {
try{
JasperDesign jasperDesign = JRXmlLoader.load(reportFile);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
Connection jdbcConnection = connectDB(databaseName, userName, password);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, jdbcConnection);
JasperViewer.viewReport(jasperPrint);
}catch(Exception ex) {
String connectMsg = &quot;Could not create the report &quot; + ex.getMessage() + &quot; &quot; + ex.getLocalizedMessage();
System.out.println(connectMsg);
}
}
public static void main(String[] args) {
//if (args.length == 4) {
String databaseName = &quot;test&quot; ;
String userName = &quot;root&quot;;
String password = &quot;root&quot;;
String reportFile = &quot;Reports/test2.jrxml&quot;;
runReport(databaseName, userName, password, reportFile);
/*}/lse{
System.out.println(&quot;Usage:&quot;);
System.out.println(&quot;java ReportDriver databaseName userName password reportFileLocation&quot;);
}
return;*/

}
}</pre>
<p>ใน code จะไปเรียกไฟล์ test2.jrxml ที่สร้างโดย iReport ดังนั้นเราต้องไปสร้างไฟล์นี้ก่อน ให้ต่อไปยัง database ตัวเดียวกับที่เราใช้ใน code นี้ เมื่อรัน main method ขึ้นมา ก็จะได้ report ที่ถูก view โดย JRViewer</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nattyait.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nattyait.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nattyait.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nattyait.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nattyait.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nattyait.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nattyait.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nattyait.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nattyait.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nattyait.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nattyait.wordpress.com&blog=4817581&post=112&subd=nattyait&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://nattyait.wordpress.com/2008/10/03/jasper-java-clas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">natty</media:title>
		</media:content>
	</item>
	</channel>
</rss>