ireport_cara setup dan sqlserver

27
CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY. CARA NAK BUAT CONNECTION KE JAKARTA TOMCAT 1. masukkan msbase.jar,mssqlserver.jar dan msutil.jar dalam jakarta/common/lib 2. Setkan macam biasa contoh dalam PKB.xml 3. Setkan dalam tomcat seperti gambarajah dibawah. 4. Dalam coding, untuk nak panggil data source, sila taipkan seperti berikut: Contoh: <sql:setDataSource dataSource="jdbc/echris" var="hhppkbdb" scope="request"/> <sql:query var="res" dataSource="${hhppkbdb}"> SELECT * FROM personel WHERE nama like '%azmi%' </sql:query > 1

Upload: badarudin-kusni

Post on 09-Dec-2015

317 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

CARA NAK BUAT CONNECTION KE JAKARTA TOMCAT1. masukkan msbase.jar,mssqlserver.jar dan msutil.jar dalam jakarta/common/lib2. Setkan macam biasa contoh dalam PKB.xml3. Setkan dalam tomcat seperti gambarajah dibawah.

4. Dalam coding, untuk nak panggil data source, sila taipkan seperti berikut:Contoh:<sql:setDataSource dataSource="jdbc/echris" var="hhppkbdb" scope="request"/><sql:query var="res" dataSource="${hhppkbdb}">

SELECT * FROM personel WHERE nama like '%azmi%' </sql:query >

1

Page 2: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Cara nak install ireport1. install ireport (program boleh dapatkan dalam cd)2. Setelah proses install selesai, copy semua yang ada dalam lib (kecuali servlet.jar) :C:\Program Files\JasperSoft\iReport-2.0.2\libdan masukan dalam C:\jakarta-tomcat-5.0.28\webapps\pkb\WEB-INF\lib

Cara nak gunakan ireport.1. klik ireport2. sebelum tu, buatkan satu folder reportpdf dalam PKB untuk mengumpulkan semua fail-fail yang berkaitan dengan report dalam satu tempat. Contoh:

C:\jakarta-tomcat-5.0.28\webapps\pkb\reportpdf3. bila kita klik ireport, dia akan buka macam dibawah.

2

Page 3: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Cara buat report baru1. cara nak buat laporan baru. Klik pada file>new document>

2. Rename ReportName: Laporan2, kemudian setkan size dan seterusnya tekan butang OK.

3. Pada files, akan terpapar [laporan2]. Ini bermaksud, laporan2 tersebut masih tidak disave kan. Untuk save klik save dan pastikan laporan2 tersebut disimpan dalam folder yang telah disetkan.

3

Page 4: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

4. Ini adalah hasil apabila kita dah savekan laporan tersebut. Dibawah adalah environment laporan2 yang telah disetkan. Konsepnya hamper sama dengan active report.

Cara setkan connection1. Untuk proses kali pertama, kita kena setkan connection ke database.

Caranya klik Data>Connections/Data Sources>

4

Page 5: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Seterusnya klik new >Database JDBC connection>Next>

Seterusnya selepas klik next >

5

Page 6: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Untuk sqlserver: sebelum membuat connection, sila copy msbase.jar,mssqlserver.jar dan msutil.jar dan pastekan kedalam C:\Program Files\JasperSoft\iReport-2.0.2\lib.

Kemudian, ,lengkapkan maklumat connection seperti dibawah. Seterusnya tekan butang test. Kalu dia kata connection success.. bermakna dah buleh buat report tu.

6

Page 7: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Seterusnya, letakkan satu nama pada connection : contoh adalah seperti diatas. (contoh diatas adalah untuk connection pada mysql. Username dan password adalah username dan password bagi mysql (database).

Seterusnya, buleh tekan butang test untuk memastikan connection berjaya. Klik butang save. Proses membuat connection selesai. Klik tanda x untuk keluar dari setting connection.

Seterusnya, kita setkan query apa yang kita nak buat. Caranya, klik Data>Report Query> akan terpapar seperti dibawah.

7

Page 8: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Ada banyak cara untuk buat query. Kat sini nak habaq 3 cara sahaja. Cara pertama : taipkan code sql dalam petak kosong tu.Cara kedua : untuk kaedah lebih mudah, buleh guna query designer. Cuba try pakai query designer. Pasti seronok.

8

Page 9: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Cara ketiga : cara nie, ada tapi tak tau lagi… atau tunggu orang lain siap, pastu pinjam jer dia punya sql language.

Hasilnya akan jadi seperti dibawah:

Kaedah diatas adalah kaedah yang tidak membawa sebarang session.

Jika ada yang bawa session, contoh :

http://localhost:8080/reportest/laporan?name=%AZMI%, kita kena buat cara macam yang sama jer, pastu ada kena setting sikit dia punya sql.

Caranya:

9

Page 10: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

SELECT personal.`NAMA` AS personal_NAMA, personal.`JNTINA` AS personal_JNTINA, personal.`NO_GAJI` AS personal_NO_GAJI, personal.`NOKPL` AS personal_NOKPL, personal.`NOKPB` AS personal_NOKPBFROM `personal` personalWHERE nama like $P{pnama}order by JNTINA

Bila ada $P{pnama}, kita juga kena setkan pnama dalam View>Parameters>

10

Page 11: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Klik new> kemudian setkan pada Parameter name dengan nama yang kita istiharkan.Default value Expression adalah tempat kita nak testkan nilai samada buleh jalan atau tidak. Contoh : masukan Default value Expression dengan satu nilai :contoh azmi, pastu kalu kita runkan, dia akan keluarkan report yang berkaitan dengan nama azmi sahaja.

SELECT personal.`NAMA` AS personal_NAMA, personal.`JNTINA` AS personal_JNTINA, personal.`NO_GAJI` AS personal_NO_GAJI, personal.`NOKPL` AS personal_NOKPL, personal.`NOKPB` AS personal_NOKPBFROM `personal` personalWHERE nama like $P{pnama} azmi akan mewakili nilai pnamaorder by JNTINA

11

Page 12: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Jika hendak masukkan default value, pastikan nilai tersebut ada tanda “ pembuka dan “ penutupContoh : ”730817045233” Juga macam dibawah:

12

Page 13: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Jika dilihat dalam parameter name, dah pun ada istiharan pnama. So bila dah sudah, buleh klik butang pangkah dan kembali kepada utama.

Untuk nak testkan kita punya hasil sql, klik Built> Execute(with active connection). Hasil akan dipaparkan.Kita juga buleh gunakan Built> Execute(empty data source) untuk lihat format borang yang kita set tanpa keluar dari format boring yang kita cipta.

Proses untuk execute selesai. Skarang nie nak tarik medan-medan yang ada dalam query. Caranya klik View> Fields> pastu pilih medan dan heret medan tersebut ke dalam ruangan untuk nak rekabentuk laporan.

13

Page 14: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Hasil nya adalah seperti dibawah.

Cara nat setkan sambungan dari pages dengan menggunakan servlet.

Untuk proses seterusnya, kita kena buat classes untuk runkan ireport yang telah siap. Langkah pertama, dengan menggunakan exadel atau NetBean, kita buatkan satu servlet. Contoh yang akan kita buat ialah

14

Page 15: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

ReportServlet.java . Servlet tersebut kita letakkan dalam C:\jakarta-tomcat-5.0.28\webapps\reportest\WEB-INF\src\pkb

Kemudian , dalam reportservlet.java, masukkan coding dibawah:

Terdapat Dua kaedah untuk menghasilkan classes untuk ireportKaedah Pertama

package pengguna;

import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.HashMap;import java.util.Map;

import javax.naming.Context;import javax.naming.InitialContext;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.sql.DataSource;

import net.sf.jasperreports.engine.JRExporterParameter;import net.sf.jasperreports.engine.JasperCompileManager;import net.sf.jasperreports.engine.JasperExportManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.JasperReport;import net.sf.jasperreports.engine.design.JasperDesign;import net.sf.jasperreports.engine.export.JRPdfExporter;import net.sf.jasperreports.engine.xml.JRXmlLoader;

public class reporthadir extends HttpServlet {

public void init(ServletConfig config) throws ServletException {super.init(config);

15

Page 16: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

}

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

processRequest(request, response);}

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

processRequest(request, response);}

public void processRequest(HttpServletRequest req, HttpServletResponse res) {Connection jdbcConnection = null;try {

Map params = new HashMap();String param1 = req.getParameter("nokpb");

String param2 = req.getParameter("kodmodul"); String param3 = req.getParameter("seksyen"); String param4 = req.getParameter("sesi");

if(param1!=null && param1.length()>0){ params.put("nokpb", param1);}

if(param2!=null && param2.length()>0){

params.put("kodmodul", param2);}

if(param3!=null && param3.length()>0){

params.put("seksyen", param3);}

if(param4!=null && param4.length()>0){

params.put("sesi", param4);}

File f = new File(getServletContext().getRealPath("/report")+ "/boranghadir.jrxml");

InputStream fs = new FileInputStream(f);

JasperPrint jasperPrint = returnReportPrint(fs, params);

res.setContentType("application/pdf");

16

Page 17: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

byte[] pdfasbytes = JasperExportManager.exportReportToPdf(jasperPrint);

JRPdfExporter exporter = new JRPdfExporter();

ByteArrayOutputStream pdfReport = new ByteArrayOutputStream();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, pdfReport);exporter.exportReport();

pdfasbytes = pdfReport.toByteArray();res.setContentLength(pdfasbytes.length);

// response.setHeader(”Content-Disposition”, “attachment;// filename=”);ServletOutputStream ouputStream = res.getOutputStream();

ouputStream.write(pdfasbytes, 0, pdfasbytes.length);ouputStream.flush();ouputStream.close();

} catch (Exception e) {System.out.println("Error " + e.getMessage());

}finally {try {

jdbcConnection.close();} catch (SQLException e) {

// TODO Auto-generated catch blocke.printStackTrace();

}}

}

public JasperPrint returnReportPrint(InputStream inputStream, Map params) {JasperPrint jasperPrint = null;try {

JasperDesign jasperDesign = JRXmlLoader.load(inputStream);JasperReport jasperReport = JasperCompileManager

.compileReport(jasperDesign);Connection jdbcConnection = connectDB();jasperPrint = JasperFillManager.fillReport(jasperReport, params,

17

Page 18: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

jdbcConnection);} catch (Exception ex) {

String connectMsg = "Could not create the report stream "+ ex.getMessage() + " " + ex.getLocalizedMessage();

System.out.println(connectMsg);}return jasperPrint;

}

public Connection connectDB() {Connection jdbcConnection = null;

try {Context initCtx = new InitialContext();Context envCtx = (Context) initCtx.lookup("java:comp/env");DataSource ds = (DataSource) envCtx.lookup("jdbc/pkbserver");

jdbcConnection = ds.getConnection();

} catch (Exception e) {e.printStackTrace();

}

return jdbcConnection;}

}

Kaedah Kedua

package myapps;

import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.HashMap;import java.util.Map;

import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;

18

Page 19: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRExporterParameter;import net.sf.jasperreports.engine.JasperCompileManager;import net.sf.jasperreports.engine.JasperExportManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.JasperReport;import net.sf.jasperreports.engine.design.JasperDesign;import net.sf.jasperreports.engine.export.JRPdfExporter;import net.sf.jasperreports.engine.xml.JRXmlLoader;

public class ReportServletJRXML extends HttpServlet {

public void init(ServletConfig config) throws ServletException {super.init(config);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

processRequest(request, response);}

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

processRequest(request, response);}

public void processRequest(HttpServletRequest req, HttpServletResponse res) {Connection jdbcConnection = null;try {

Map params = new HashMap();String sid = req.getParameter("sid");

if(sid!=null && sid.length()>0){params.put("student_id", sid);

}

String databaseName = "jdbc:mysql:///mydb";String userName = "mydb";String password = "mydb";

File f = new File(getServletContext().getRealPath("/report")

19

Page 20: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

+ "/result_slip.jrxml");

InputStream fs = new FileInputStream(f);jdbcConnection = connectDB(databaseName, userName,

password);

JasperPrint jasperPrint = returnReportPrint(databaseName, userName,password, fs, params, jdbcConnection);

res.setContentType("application/pdf");

byte[] pdfasbytes = JasperExportManager.exportReportToPdf(jasperPrint);

JRPdfExporter exporter = new JRPdfExporter();

ByteArrayOutputStream pdfReport = new ByteArrayOutputStream();

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);

exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, pdfReport);exporter.exportReport();

pdfasbytes = pdfReport.toByteArray();res.setContentLength(pdfasbytes.length);

// response.setHeader(”Content-Disposition”, “attachment;// filename=”);ServletOutputStream ouputStream = res.getOutputStream();

ouputStream.write(pdfasbytes, 0, pdfasbytes.length);ouputStream.flush();ouputStream.close();

} catch (Exception e) {System.out.println("Error " + e.getMessage());

} finally {try {

jdbcConnection.close();} catch (SQLException e) {

// TODO Auto-generated catch blocke.printStackTrace();

}}

}

20

Page 21: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

public JasperPrint returnReportPrint(String databaseName, String userName,String password, InputStream inputStream, Map params, Connection jdbcConnection)

{JasperPrint jasperPrint = null;try {

JasperDesign jasperDesign = JRXmlLoader.load(inputStream);JasperReport jasperReport = JasperCompileManager

.compileReport(jasperDesign);

jasperPrint = JasperFillManager.fillReport(jasperReport, params,jdbcConnection);

} catch (Exception ex) {String connectMsg = "Could not create the report stream "

+ ex.getMessage() + " " + ex.getLocalizedMessage();System.out.println(connectMsg);

}return jasperPrint;

}

public Connection connectDB(String databaseName, String userName,String password) {

Connection jdbcConnection = null;try {

Class.forName("com.mysql.jdbc.Driver");jdbcConnection = DriverManager.getConnection(databaseName,

userName, password);} catch (Exception ex) {

String connectMsg = "Could not connect to the database: "+ ex.getMessage() + " " + ex.getLocalizedMessage();

System.out.println(connectMsg);}return jdbcConnection;

}

}

Setelah siap coding tersebut dimasukkan compile kan fail tersebut sehingga menghasilkan fail ReportServlet.class.

Hal ini boleh dirujuk dalam C:\jakarta-tomcat-5.0.28\webapps\reportest\WEB-INF\classes\pkb\ReportServlet.class. Proses servlet selesai.

21

Page 22: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Langkah terakhir ialah dengan menambah kod berikut (mesti bagi setiap laporan baru) dalam web.xml. Fail tersebut ada dalam folder C:\jakarta-tomcat-5.0.28\webapps\reportest\WEB-INF\web.xml

<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-

app_2_4.xsd"version="2.4">

<display-name>Report Test</display-name>

<welcome-file-list><welcome-file>index.jsp</welcome-file>

</welcome-file-list>

<servlet><servlet-name>ReportServlet</servlet-name><servlet-class>pkb.ReportServlet</servlet-class>

</servlet>

<servlet-mapping><servlet-name>ReportServlet</servlet-name><url-pattern>/laporan</url-pattern>

</servlet-mapping>

</web-app>Hint: yang tulisan dia italic tulah yang perlu ditambah. Jika ada report lain yang telah siap kita kena susun seperti berikut:

<servlet><servlet-name>ReportServlet</servlet-name><servlet-class>pkb.ReportServlet</servlet-class>

</servlet><servlet>

<servlet-name>ReportServlet2</servlet-name><servlet-class>pkb.ReportServlet2</servlet-class>

</servlet><servlet>

<servlet-name>ReportServlet3</servlet-name><servlet-class>pkb.ReportServlet3</servlet-class>

</servlet><servlet>

<servlet-name>ujikaji</servlet-name> <jsp-file>/test.jsp</jsp-file>

</servlet>

22

Page 23: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

<servlet-mapping><servlet-name>ReportServlet</servlet-name><url-pattern>/laporan</url-pattern>

</servlet-mapping><servlet-mapping>

<servlet-name>ReportServlet2</servlet-name><url-pattern>/laporan2</url-pattern>

</servlet-mapping><servlet-mapping>

<servlet-name>ReportServlet3</servlet-name><url-pattern>/laporan3</url-pattern>

</servlet-mapping><servlet-mapping>

<servlet-name>ujikaji</servlet-name><url-pattern>/ujikaji</url-pattern>

</servlet-mapping>

Dan seterusnya. Setelah selesai, buleh cuba runkan dengan menaipkan dalam browser seperti berikut:http://localhost:8080/pkb/laporan?name=%AHMAD%

hasilnya akan menjadi seperti berikut:

23

Page 24: Ireport_cara Setup Dan Sqlserver

CARA SETTING IREPORT DALAM JAVA STANDARD TAG LIBRARY.

Proses membuat format pdf selesai.

Tambahan : jTDS

<sql:setDataSource var="datasource"                 driver="net.sourceforge.jtds.jdbc.Driver"                 url="jdbc:jtds:sqlserver://localhost:1433/echris"                 user="sa" password="azlan"/>

24