Rabu, 17 Februari 2010

Ngeprint With Java

pren gan brow....gw sekarang mw sharing tentang cara kita tuk ngprint dengan java. soalnya gw sbagai new-bie ngerasa kesulitan tuk ngeluarin laporan yang gw buat di program java netbeans...-_-... pa lagi gw blajarnya loncat2...wkwkwkwkkk....kmarin blajar nyimpen, besoknya blajar manipulasi frame, bsok2-nya lagi blajar mempercantik tampilan tabel dll....(g tau dah besok belajar pa lagi...tergantung mood the on n mood the modem on alias kagak putus2...hahahaha)
huokeh ayo kita lets go...ngprint... sbenarnya pa y yang dimaksud dg ngprint, kalo menurut gw ngeprint t kita ngeluarin semua bentuk unek2 yang udah kita tuangkan di program kedalam bentuk gambar draw, yang bisa memberikan info ke orang laen or kita ndiri...hehehe(ni menurut gw, tmen2 boleh nyari kesimpulan ndiri, jangan niru2. ntar nilainya sama-sama ancur..^_^).. trus gmana yakh supaya kita bisa ngeluarin unek2 kita dgn prog java netbeans...kan kalo vb da cristal report-nya tuh, ngeluarin unek2nya mudah n menyenangkan...kalo java...nah..nah...nah...gw dulu pas pkl sempet sedeng juga, soalnya netbeans gw cekak buanget, gw taunya cuma save edit delete exit n reset...hahahaha....pas ngerjain prog pkl mulai dah pusing, soalnya tmen2 pengennya da tambah tombol navigator atu lagi...tombol laporan(nah ni die masalahnya...hahaha)..
tapi karena gw anak kuliahan gengsi donk bilang kagak bisa,...gw bilang ja bisa, trus ditanya beneran bisa...yoyoi gw jawab, nyantai ja brow... nah pertama2 gw ajuin ja tawaran tuk ngeluarin unek2 laporannya dengan menekan tombol maut keyboard....print screen cuy...hahaha...rupanya temen2 ga stuju, malah gw diacungin tinju...haaha...y udah gw pasrah ja coba tanya ma mbah google juga g ngerti soalnya kebanyakan bahasa planet... trus gw pinjem2 buku java, n nanya ma temen, rupanya da....hups...amin...nah dari pada panjang2 gw ngebahas pengalaman gw, lbih baik kita ngebahas caranya ja y.....hahaha..... nih :

cara pertama :

dalam ngebuat laporan gw lebih suka ngedraw sendiri mampatin 2dnya java...pake printah graphich gito, dalam hal ini bahan2 yang kita butuhkan adalah membuat project baru trus frame baru trus diatas frame kita letakin jpanel trus diatas jpanel kita letakin jscrolpane trus di atas jscrolpane kita drag jtable dari palette manager dan diletakin di atas jscrolpane-nya....nih contoh gambar-nya :


pas mo ngebuat prognya, jgan ampe lupa pren semuanya ngimpor library-nya

ex :
import javax.swing.*; import javax.swing.table.*; import java.awt.*; import java.sql.*; import java.util.*;

trus di tombol cetak laporannya di klik kanan, trus ambil event ambil actionperformed. nah setelah itu buat sintak kayak dibawah ni silahkan di sesuaikan ma cell, header, colum, dll dari tabel yang pren buat dirumah...hehehe

private void priview1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_priview1ActionPerformed
// TODO add your handling code here:
Calendar tanggal = Calendar.getInstance();
String nbl = "",nhr = "";
int ith = tanggal.get(tanggal.YEAR);
int ibl = tanggal.get(tanggal.MONTH)+1;
int ihr = tanggal.get(tanggal.DAY_OF_MONTH);
if(ibl<=9){nbl="0";}
if(ihr<=9){nhr="0";}
String th = Integer.toString(ith);
String bl = nbl + Integer.toString(ibl);
String hr = nhr + Integer.toString(ihr);
String t = hr +"-"+ bl +"-"+ th;

Frame fr = new Frame();
PrintJob print = fr.getToolkit().getPrintJob(fr, "Printing", null, null);
if (print != null) {
Graphics g = print.getGraphics();
if (g != null) {
g.setFont(new Font("Dialog", 1, 18));
g.drawString("Koperasi UED-SP Albarakah Sigiran", 135, 50);
g.setFont(new Font("Dialog", 0, 14));

String f3 = jTextField1.getText();
g.drawString(jComboBox1.getSelectedItem().toString(), 210, 80);
g.drawString(f3, 330, 80);

g.drawString("Laporan Pinjaman Anggota", 210, 65);
g.drawLine(10, 85, 590, 85);

String a1 = jTable1.getColumnName(0);
String b1 = jTable1.getColumnName(1);
String c1 = jTable1.getColumnName(2);
String d1 = jTable1.getColumnName(3);
String e1 = jTable1.getColumnName(4);
String f1 = jTable1.getColumnName(5);
String g1 = jTable1.getColumnName(6);
String h1 = jTable1.getColumnName(7);

g.setFont(new Font("Dialog", 1, 8));
g.drawLine(10, 125, 590, 125);
g.drawString(a1, 15, 140);
g.drawString(b1, 35, 140);
g.drawString(c1, 105, 140);
g.drawString(d1, 225, 140);
g.drawString(e1, 285, 140);
g.drawString(f1, 355, 140);
g.drawString(g1, 435, 140);
g.drawString(h1, 515, 140);
g.drawLine(10, 145, 590, 145);

int y = 0;
int n = tabMode.getRowCount();
for (int i = 0; i <>
int k = i + 1;
int j = 10 * k;
y = 145 + j;
g.setFont(new Font("Dialog", 0, 8));
String a2 = tabMode.getValueAt(i, 0).toString();
String b2 = tabMode.getValueAt(i, 1).toString();
String c2 = tabMode.getValueAt(i, 2).toString();
String d2 = tabMode.getValueAt(i, 3).toString();
String e2 = tabMode.getValueAt(i, 4).toString();
String f2 = tabMode.getValueAt(i, 5).toString();
String g2 = tabMode.getValueAt(i, 6).toString();
String h2 = tabMode.getValueAt(i, 7).toString();
g.drawString(a2, 15, y);
g.drawString(b2, 35, y);
g.drawString(c2, 105, y);
g.drawString(d2, 225, y);
g.drawString(e2, 285, y);
g.drawString(f2, 355, y);
g.drawString(g2, 435, y);
g.drawString(h2, 515, y);
}
g.drawLine(9, 125, 9, y+5);
g.drawLine(30, 125, 30, y+5);
g.drawLine(100, 125, 100, y+5);
g.drawLine(220, 125, 220, y+5);
g.drawLine(280, 125, 280, y+5);
g.drawLine(350, 125, 350, y+5);
g.drawLine(430, 125, 430, y+5);
g.drawLine(510, 125, 510, y+5);
g.drawLine(590, 125, 590, y+5);
g.drawLine(10, y + 5, 590, y + 5);
g.drawString("Sigiran,", 455, y + 25);
g.drawString(t, 490, y + 25);
g.drawString("(KetuaKoperasi)", 465, y + 55);
}
print.end();
print.end();
}
}//GEN-LAST:event_priview1ActionPerformed


cara kedua :

pren semuanya bisa manfatin tool dari ireport....gratis...lho...hahaha...jadi pren2 semuanya bisa duduk dan ngayalin gimana tampilan laporan yang pengen kita buat nih contoh laporan yang gw disain pake ireport :

nah caranya pren dunlut dulu ireport nya di http://jasperforge.org/

nah stelah ngedunlut, pren instal n jalanin tu program trus tuk ngerjain laporan sederhananya
pren ambil file, trus ambil new document nah kan trus ntar ada pilihan buat nama, pren tukarnya namanya dengan nama laporan yang pren inginkan trus kalo mau ngebuat tampilannya potrait or landscape tinggal arahin mouse ke label orientation.(bahasa planet nih...).

nah stelah tu pren disain deh, kalo mo ngebuat garis liat ja di tab menu bagian atas da gambar gari miring, petak, dan elips...hehehe...nah kalo garis miring ntu untuk ngebuat garisnya satu2, kalo petak langsung garis nya bentuknya petak, kalo elips tau ndiri kan bentuknya y bundar setengah...hahaha...
setelah ngebuat garis kalo mo ngebuat tulisan bisa pake static text ato text field, kalo sekedar untuk ngebuat judul or judul kolom lebih baik pren pake static text ja, soalnya text field biasanya dipake buat text yang memerlukan expresion tertentu. misalnya mo melakukan penjumlahan nempatin hasil dll.... kalo pren mo narok image or gambar or photo, tinggal pren arahin mouse pren ke tab image yang bentuknya kayak da gambar pohon beringin warna hijau...trus tinggal dicari dimana letak posisi gambarnya di drive or partisi pren...

setelah proses ngedisain selesai pren buat dah koneksinya, caranya : pren ambil tab data trus ambil connection/datasource. trus ambil new nah ntar nampak jenis2 koneksinya, kalo gw sih biasanya make database jdbc connection. selanjutnya kita setting jdbc drivernya, kalo make sql pake yang com.sql, kalo make sun pake sun.jdbc. trus untuk jdbc urlnya disesuain ma jdbc odbc yang kita buat di program kita.

setelah proses koneksi selesai, tinggal kita ambil field2 dari database kita, caranya ambil tab data trus ambil report query, trus kita buat dah sintak sql-nya, contohnya kalo kita mo ngambil semua field yang ada di tabel tpenjualan tinggal kita ketikkan ja "select * from tpenjualan". selanjutnya tekan ok. nah udah siap dah tinggal kita drag doank field2-nya ke bawah colum header dari laporan yang kita desain. letak fieldnya, arahin mata kita ke sebelah kiri trus da pada kolom document structure kita liat fields yang iconnya warnanya hijau, trus di klik tambah kecilnya nampak dah seluruh field dari tpenjualan tadi...tinggal di drag doank...^_^... kalo udah selesai semua kita jalankan dengan ambil tab build, kita ambil execute with active connection...selesai dah.

nah cara yang ketiga :

kalo cara yang pertama dan kedua kepanjangan, pren2 semua print ja tabel or frame program kita caranya :

untuk ngeprint tabel, pada tombol cetak laporannya kita tambahin sintaks sebagai berikut :

try {
if (! jTable2.print()) {
System.err.println("ga jadi ngeprin ah");
}
} catch (java.awt.print.PrinterException e) {
System.err.format("salah prin cuy %s%n", e.getMessage());
}

kalo mo ngprin frame-nya kita tambahin di tombolnya sintak sebagai berikut :

PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(NewJFrame2.this);
if (pj.printDialog()) {
try { pj.print(); }
catch (PrinterException pe) {
System.out.println(pe);
}
}

nah udah dulu ya udah capek nih nulis pengalamannya,...met bobox....

1 komentar:

Erien Nada Azandra mengatakan...

mas, saya bikin laporan dengan ireport,, tapi pengenya data yang ditampilkan kita seleksi dulu dengan jcombo artinya data yang tampil data yg kita pilih di jcombonya..
gi mana codingya ya mas,,,? udh cari2 di goggle tpi gak ketemu

 
You Are My Inspiration © 2007 Template feito por Templates para Você