[Pemrograman]Membuat Form Cetak Sederhana dengan I-report


hello hello🙂 berhubung tadi ada temen kita yang membutuhkan tutorial di forum java programmer tentang bagaimana membuat form cetak di java dengan Ireport kali ini akan saya sharing tutorialnya seperti yang sudah saya bilang sebelumnya ada 8 komponen yang hrus di add ke library ,adapun librabry ini sudah terdapat di I-Report kalian jadi kalian tinggal copas saja yah🙂 8 library tersebut adalah

  • commons-beanutils-1.8.2.jar
  • commons-collections-3.2.1.jar
  • commons-digester-2.1.jar
  • commons-javaflow-20060411.jar
  • commons-logging-1.1.jar
  • groovy-all-1.7.5.jar
  • iText-2.1.7.jar
  • jasperreports-4.5.1.jar

nah kalo sudah di add maka kita tinggal ke codingnya import ini

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.util.*;
import net.sf.jasperreports.view.*;
import net.sf.jasperreports.engine.design.*;
import java.util.*;

dan buat methodsnya

void formCetak(){
		
		try{
		String nmFile = "src/demoReport1/newbieilmu.demoIReport.jasper";
		String driver = "com.mysql.jdbc.Driver";
		String con = "jdbc:mysql://localhost/OMD";
		String user = "root";
		String password = "root";
		
		HashMap hash = new HashMap();
		
		Class.forName(driver);
		Connection koneksi = DriverManager.getConnection(con, user, password);
		File file = new File(nmFile);
		JasperReport jasperreport = (JasperReport)JRLoader.loadObject(file.getPath());
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperreport,hash,koneksi);
		JasperViewer.viewReport(jasperPrint,false);
		}
		catch(Exception ex){
			
		}
	}

ini coding lengkapnya gan🙂

package demoReport1;

@Anugrah Bagus Susilo - Newbie Ilmu

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.util.*;
import net.sf.jasperreports.view.*;
import net.sf.jasperreports.engine.design.*;
import java.util.*;
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import com.jtattoo.plaf.acryl.*;

public class CetakForm extends JFrame implements ActionListener
{
	
	//JLabel lblJudul = new JLabel("Demo JasperReport");
	JLabel lblNmPlg = new JLabel("Nama pelanggan");
	JTextField txtNmPlg = new JTextField(20);
	JLabel lblAlmtPlg = new JLabel("Alamat pelanggan");
	JTextField txtAlmtPlg = new JTextField(20);
	JLabel lblTelpPlg = new JLabel("No Telepon");
	JTextField txtTelpPlg = new JTextField(20);
	JLabel lblFax = new JLabel("No Fax");
	JTextField txtFax = new JTextField(20);
	JLabel lblNPWP = new JLabel("NPWP");
	JTextField txtNPWP = new JTextField(20);
	JButton btnCetak = new JButton("Cetak");
	JButton btnBersih = new JButton("Bersih");
	JButton btnKeluar = new JButton("Keluar");
	
	public CetakForm(){
	super("Cetak Data Pelanggan");
	setSize(500,500);
	setVisible(true);
	getContentPane().setLayout(null);
	setLocationRelativeTo(null);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	
	//lblJudul.setBounds(110, 10, 250, 50); 
	
	lblNmPlg.setBounds(10, 40, 250, 20); 
	txtNmPlg.setBounds(180, 40, 250, 20); 
	lblAlmtPlg.setBounds(10, 70, 250, 20); 
	txtAlmtPlg.setBounds(180, 70, 250, 20); 
	lblTelpPlg.setBounds(10, 100, 250, 20); 
	txtTelpPlg.setBounds(180, 100, 250, 20); 
	lblFax.setBounds(10, 130, 250, 20); 
	txtFax.setBounds(180, 130, 250, 20); 
	lblNPWP.setBounds(10, 160, 250, 20); 
	txtNPWP.setBounds(180, 160, 250, 20); 
	
	btnCetak.setBounds(140, 200, 120, 20);
	btnBersih.setBounds(240, 200, 120, 20);
	btnKeluar.setBounds(340, 200, 120, 20);
	//getContentPane().add(lblJudul);
	
	getContentPane().add(lblNmPlg);
	getContentPane().add(txtNmPlg);
	getContentPane().add(lblAlmtPlg);
	getContentPane().add(txtAlmtPlg);
	getContentPane().add(lblTelpPlg);
	getContentPane().add(txtTelpPlg);
	getContentPane().add(lblFax);
	getContentPane().add(txtFax);
	getContentPane().add(lblNPWP);
	getContentPane().add(txtNPWP);
	
	getContentPane().add(btnCetak);
	getContentPane().add(btnBersih);
	getContentPane().add(btnKeluar);
	
	txtNmPlg.addActionListener(this);
	btnBersih.addActionListener(this);
	btnCetak.addActionListener(this);
	btnKeluar.addActionListener(this);
	}
	
	public static void main(String[] args) throws UnsupportedLookAndFeelException{
		UIManager.setLookAndFeel(new AcrylLookAndFeel());
		new CetakForm(); 
	}

	
	
	@Override
	public void actionPerformed(ActionEvent arg0) {
		if(arg0.getSource() == btnCetak){
			formCetak();
		}
		if(arg0.getSource() == txtNmPlg){
			cariPelanggan();
		}
		if(arg0.getSource() == btnBersih){
			bersih();
		}
		if(arg0.getSource() == btnKeluar){
			JOptionPane.showConfirmDialog(btnKeluar, "Yakin ingin Keluar");
			System.exit(0);
		}
		
	}
	
	void bersih(){
		txtNmPlg.setText("");
		txtAlmtPlg.setText("");
		txtTelpPlg.setText("");
		txtFax.setText("");
		txtNPWP.setText("");
	}
	
	void cariPelanggan(){
		try{
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		Connection koneksi = DriverManager.getConnection("jdbc:mysql://localhost/OMD","root","root");
		Statement state = koneksi.createStatement();
		String sql = "select * from Pelanggan where NamaPlg = '"+txtNmPlg.getText()+"'";
		ResultSet rs = state.executeQuery(sql);
		if(rs.next()){
			//txtNmPlg.setText(rs.getString(1));
			txtAlmtPlg.setText(rs.getString(2));
			txtTelpPlg.setText(rs.getString(3));
			txtFax.setText(rs.getString(4));
			txtNPWP.setText(rs.getString(5));
		}else{
			rs.close();
			koneksi.close();
		}
		}
		catch(Exception ex){
			JOptionPane.showMessageDialog(null, "Data ditemukan");
		}
	}
	
	void formCetak(){
		
		try{
		String nmFile = "src/demoReport1/newbieilmu.demoIReport.jasper";
		String driver = "com.mysql.jdbc.Driver";
		String con = "jdbc:mysql://localhost/OMD";
		String user = "root";
		String password = "root";
		
		HashMap hash = new HashMap();
		
		Class.forName(driver);
		Connection koneksi = DriverManager.getConnection(con, user, password);
		File file = new File(nmFile);
		JasperReport jasperreport = (JasperReport)JRLoader.loadObject(file.getPath());
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperreport,hash,koneksi);
		JasperViewer.viewReport(jasperPrint,false);
		}
		catch(Exception ex){
			
		}
	}
	
}


begini viewnya segitu aj gan mungkin tutorialnya nnti saya update lagi🙂 CEO & Founder Newbie Ilmu Anugrah Bagus Susilo

10 pemikiran pada “[Pemrograman]Membuat Form Cetak Sederhana dengan I-report

  1. bang saya dah coba…
    kebetulan yang nanya itu saya..

    masalah yang saya hadapi, saya punya form dengan button yg sudah tersedia (gak harus bikin ulang seperti contohnya abang)

    button yag dimaksud (bila dklik) dpat menampilkan file jasper nya saja..
    gimana tuch bang codingnya..

    makasih

  2. coba kamu tulis coding u di github ,nnti insyallah saya koreksi
    tapi saran saya u copy aj method formcetak() terus u masukin ke actionperformed
    tinggal ganti parameternya sesuai nama button u ,saya kira itu bisa jalan
    atau u coba copas aj source code ituh jalan ndak ?

  3. bang… setelah otak-atik sana-sini, akhirnya berhasil juga😀

    tapi ada 1 kendala lagi nich bang,
    saya kan punya 2 report (yang 1 biasa, yang 1 lagi ada Chart Diagram Bar nya)

    nah, coding yg sebelumnya udah jalan, ketika saya ganti file reportnya (jadi yang ada Diagram nya) koq gak bisa ya bang..??

    apakah ada Library khusus yang dibutuhkan…??
    padahal saya cuma ganti nama file .jaspernya saja, selebihnya sama semua😦

    mohon bantuannya bang, terima kasih

  4. bang mau tanya donk…
    gimana caranya nampilin report (.jasper) yang ada diagramnya.. (Barchart)
    mohon jawabannya, urgent..😦

    kalo untuk file report bisa, alhamdulillah saya dah bisa dari contohnya abang..
    terima kasih

  5. iyah tunggu yah akan saya usahakan buat tutorialnya🙂 berarti datanya via database yah den?

  6. iya bang….
    datanya dari databse Mysql (tabel rangking) nama di garis bawah (sumbu x)
    nilai digaris lurus keatas (sumbu y)

    klo emang agak rumit pake iReport pake JFreechart juga boleh dech bang..
    yang penting ada Diagram BarChartnya…

    makasih ya bang….🙂

  7. *masih menunggu ada pencerahan dari blog ini…
    tiap hari di buka truus (di bookmark)

    //curcol…. hahaa😀

  8. maav mas saya mw nanya,
    trus itu bikinnya report yg dijasper gmna caranya ya?
    kalo yg saya bisa itu seluruh database dicetak, tp gmna caranya yg ada diform itu saja yg dicetak, mungkin bisa djelaskan step pembuatannya yg ada dijaspernya, makasi sebelumnya🙂

    • sebenrnya sih gampang sekali,tinggal kita select aj field yang kita butuhkan dari tabel ituh ,contoh bila kita ada tabel mahasiswa dengan field NIM,Nama,Alamat,Telepon dan kita mau mengambil data NIM dan Nama saja ,ckup ketikan perintah select mahasiswa.NIM,mahasiswaNama from mahasiswa;
      hampir sama dengan penyeleksian di database🙂 ,coba pelajari dulu dasar2 query di database🙂 *notes : database Mysql,untuk tutorialnya nnti yah nyusul …

  9. Om minta sourcode ma databese nya dong

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s