Monday, 13 July 2015

PHP :: Tutorial Laporan PDF dengan PHP


contoh laporan PDf menggunakan FPDF

Database

Untuk database yang akan kita pakai masih sama dengan artikel sebelumnya. Tabel yang akan kita buat adalah tabel umr2013 dengan strucktur tabel sebagai berikut :
CREATE TABLE IF NOT EXISTS `umr2013` (
`no` int(11) NOT NULL AUTO_INCREMENT,
`propinsi` varchar(50) NOT NULL,
`upah` double NOT NULL,
PRIMARY KEY (`no`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

Code untuk membuat laporan

Untuk membuat laporan PDF, kita akan membuat kelas turunan dari FPDF dan membuat dua fungsi. Fungsi pertama adalah loadDataFromSQL($sql). Fungsi ini digunakan untuk melakukan query ambil data ke database. Fungsi yang kedua adalah FancyTable($header, $data) untuk memformat tampilan agar laporan PDF terlihat cantik dan rapih.
Lihat code lengkapnya dibawah ini.
<?php
require('../plugins/fpdf17/fpdf.php');
require('../inc/config.php');
class PDF extends FPDF
{
function LoadDataFromSQL($sql)
{
$hasil=mysql_query($sql) or die(mysql_error());

$data = array();
while($rows=mysql_fetch_array($hasil)){
$data[] = $rows;
}
return $data;
}
// Colored table
function FancyTable($header, $data)
{
// Colors, line width and bold font
$this->SetFillColor(255,165,74);
$this->SetTextColor(255);
$this->SetDrawColor(128,0,0);
$this->SetLineWidth(.3);
$this->SetFont('','B');
/* $w adalah variabel lebar dari kolom data
dalam kasus ini, kolom no lebarnya 20, propinsi 100
dan upah 60 */
$w = array( 20, 100, 60);
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C',true);
$this->Ln();
// tentukan warna background and fontnya
$this->SetFillColor(224,235,255);
$this->SetTextColor(0);
$this->SetFont('');
// Data
$fill = false;
foreach($data as $row)
{

$this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
$this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
$this->Cell($w[2],6,
format_rupiah($row[2]),'LR',0,'R',$fill);
$this->Ln();
$fill = !$fill;

}
// Closing line
$this->Cell(array_sum($w),0,'','T');
}
}

$pdf = new PDF();
// header tabel
$header = array('No', 'propinsi', 'upah');
// buat query SQLmu disini
$query="select * from umr2013";
$data = $pdf->LoadDataFromSQL($query);
//tentukan ukuran dan jenis form
$pdf->SetFont('Arial','',11);
$pdf->AddPage();
$pdf->FancyTable($header,$data);
$pdf->Output();
?>

Download source code lengkap

Bagi yang ingin mencoba langsung, silahkan download source code lengkapnya disni

No comments:

Post a Comment