Membuat Laporan Di PHP Dan Menampilkannya Dengan Kondisi Yang Di Tentukan.
Itulah kira - kira yang banyak di pertanyakan oleh banyak rekan - rekan yang sedang merancang laporan untuk aplikasi yang telah di buat. Memang dalam membuat aplikasi menggunakan php bagi kebanyakan orang kesulitan untuk tahap pembuatan laporan, dalam tutorial yang akan saya sampaikan ini kita akan bersama - sama membuat laporan di php berdasarkan tanggal yang di pilih, jadi yang akan kita cetak adalah laporan yang hanya kita pilih . Contoh gambar seperti di bawah ini :
Saya akan langsung membahas ke pembuatan form dan laporan serta querynya, karena saya yakin rekan - rekan sudah tahu cara membuat tabel dan membuat folder di htdocs untuk menjalankan aplikasi berbasis web ini.
- Siapkan ezpdf class, disini saya membuat laporan menggunakan ezpdf. Anda bisa langsung ambil atau download di sini ezpdfclass. Setelah file terdownload extrak ke folder localhost anda.
- Kemudian kita akan mulai membuat form seperti di atas, ketikkan atau anda bisa copas langsung script dibawah :
</fieldset>
<legend>Cari Pelamar Kerja</legend>
<form id="fftgpelamar" method="POST" action="lap-pelamar.php">
<table cellpadding="5">
<tr>
<td>Dari</td>
<td>:</td>
<td><input class="easyui-datebox" name="Dari" data-options="formatter:myformatter,parser:myparser" style="width:200px;height:25px"></td>
</tr>
<tr>
<td>Sampai</td>
<td>:</td>
<td><input class="easyui-datebox" name="Sampai" data-options="formatter:myformatter,parser:myparser" style="width:200px;height:25px"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input class="easyui-linkbutton c1" type="submit" name="Submit" value="Proses" style="width:100px;height:30px">
<input class="easyui-linkbutton c3" type="reset" name="reset" value="Close" style="width:100px;height:30px" onclick="javascript:$('#dlgtglpelamar').dialog('close')"></td>
</tr>
</table>
</form>
</fieldset>
simpan ke dalam folder tempat anda meng - ektrak ezpdf class dengan nama cari-tanggal.php, dan pastikan action formnya adalah nama file laporan anda dan method nya POST.
3. Langkah ketiga ini kita akan membuat laporan, dengan nama lap-pelamar.php. Buka file php anda dan ketikkan kode berikut ini
<?php
//class ezpdf yg di panggil
include "pdf/class.ezpdf.php";
$pdf = new Cezpdf('A4','lanscape');
Penjelasan dari script diatas adalah memanggil class ezpdf dengan fungsi include dan menentukan jenis kertas yang akan kita pakai untuk laporan. Lalu lanjutkan dengan mengetikkan scrip di bawah
//Set margin dan font
$pdf->ezSetCmMargins(3, 3, 3, 3);
$pdf->selectFont('pdf/fonts/Times-Roman.afm');
//Tampilkan gambar di dokumen PDF
$pdf->addJpegFromFile('mylogo.jpg',40,778,70);
//Teks di tengah atas untuk judul header
$pdf->addText(230, 815, 14,'<b>Daftar Pelamar Kerja</b>');
$pdf->addText(160, 800, 12,'<b>RS IMANUEL WAY HALIM BANDAR LAMPUNG</b>');
$pdf->addText(210, 785, 10,'Jl. Soekarno - Hatta No.1 Bandar Lampung');
//Garis atas untuk header
$pdf->line(2, 770, 590, 770);
//Garis bawah untuk footer
$pdf->line(2, 50, 590, 50);
Dari script di atas kita bisa menentukan margin, dan menambahkan logo serta membuat kop dengan posisi di tengah dan memberikan garis setelah kop serta di footer. Lanjutkan dengan mengetikkan kode dibawah ini :
//Teks kiri bawah
date_default_timezone_set("Asia/Jakarta");
$pdf->addText(410,34,8,'Dicetak tgl:' . date( 'd-m-Y, H:i:s'));
//Koneksi ke database dan tampilkan datanya
mysql_connect("localhost", "root", "");
mysql_select_db("sdm");
$Dari=$_POST['Dari'];
$Sampai=$_POST['Sampai'];
$tampil = "SELECT * FROM tbpelamar WHERE (TglSurat BETWEEN '$Dari' AND '$Sampai');";
$sql = mysql_query($tampil);
$jml = mysql_num_rows($sql);
if ($jml > 0){
$i = 1;
while($r = mysql_fetch_array($sql)) {
//Format Menampilkan data di ezPdf
$data[$i]=array('No'=>$i,
'Nomor Dokumen'=>"$r[Nomor]",
'Nama Pelamar'=>"$r[Nama]",
'Alamat'=>"$r[AlamatKTP]",
'Agama'=>"$r[Agama]",
'Program Study'=>"$r[Jurusan]",
'Jenjang'=>"$r[Jenjang]",
'IPK'=>"$r[IPK]",
'Tgl Melamar'=>"$r[TglSurat]"
);
$i++;
}
Penjelasan : pada keterangan teks kiri bawah yaitu akan menampilkan tanggal cetak laporan pada setiap halaman yang terletak di kiri bawah setiap halaman laporan. Koneksi database sesuaikan dengan nama database anda dan variabel $Dari dan $Sampai adalah fungsi dari pemanggilan form input dengan nama "Dari dan Sampai" seperti contoh paling atas, pada bagian membuat form.
$tampil adalah variabel memanggil tabel pelamar dengan ketentuan field yang di pilih adala TglSurat, dan BETWEEN adalah untuk memfilter atau menyaring dari tanggal yang kita pilih $Dari s/d $Sampai.
$jml adalah menampilkan jumlah data dari record TglSurat dan akan ditambah 1 jika ada inputan baru. Selanjutnya untuk tahap membuat report ketikkan kode berikut setelah script di atas.
//Tampilkan Dalam Bentuk Table
$pdf->ezTable($data);
$pdf->ezText("\nPeriode: $Dari s/d $Sampai");
// Penomoran halaman
$pdf->ezStartPageNumbers(700, 20, 8);
$pdf->ezStream();
}
else{
echo "
<script>
alert('Tidak Di Temukan Data Pelamar');
</script>
";
}
?>
penjelasan dari script diatas eztable($data) untuk menampilkan data dalam bentuk tabel, dan ezText akan menampilkan periode tanggal yang kita pilih serta membuat penomoran halaman.
Setelah semua selesai kita ketik simpan dalam folder tempat anda ektraks class ezpdf dengan nama lap-pelamar.php. Lalu jalankan, maka akan tampil seperti gambar di bawah ini :
<script type="text/javascript">
atOptions = {
'key' : '708b5d23210c896f98a1a735c6d22b19',
'format' : 'iframe',
'height' : 90,
'width' : 728,
'params' : {}
};
document.write('<scr' + 'ipt type="text/javascript" src="http' + (location.protocol === 'https:' ? 's' : '') + '://www.varietyofdisplayformats.com/708b5d23210c896f98a1a735c6d22b19/invoke.js"></scr' + 'ipt>');
</script>
Script lengkap laporan ini bisa copas langsung :
<?php
//class ezpdf yg di panggil
include "pdf/class.ezpdf.php";
$pdf = new Cezpdf('A4','lanscape');
//Set margin dan font
$pdf->ezSetCmMargins(3, 3, 3, 3);
$pdf->selectFont('pdf/fonts/Times-Roman.afm');
//Tampilkan gambar di dokumen PDF
$pdf->addJpegFromFile('mylogo.jpg',40,778,70);
//Teks di tengah atas untuk judul header
$pdf->addText(230, 815, 14,'<b>Daftar Pelamar Kerja</b>');
$pdf->addText(160, 800, 12,'<b>RS IMANUEL WAY HALIM BANDAR LAMPUNG</b>');
$pdf->addText(210, 785, 10,'Jl. Soekarno - Hatta No.1 Bandar Lampung');
//Garis atas untuk header
$pdf->line(2, 770, 590, 770);
//Garis bawah untuk footer
$pdf->line(2, 50, 590, 50);
//Teks kiri bawah
date_default_timezone_set("Asia/Jakarta");
$pdf->addText(410,34,8,'Dicetak tgl:' . date( 'd-m-Y, H:i:s'));
//Koneksi ke database dan tampilkan datanya
mysql_connect("localhost", "root", "");
mysql_select_db("sdm");
$Dari=$_POST['Dari'];
$Sampai=$_POST['Sampai'];
$tampil = "SELECT * FROM tbpelamar WHERE (TglSurat BETWEEN '$Dari' AND '$Sampai');";
$sql = mysql_query($tampil);
$jml = mysql_num_rows($sql);
if ($jml > 0){
$i = 1;
while($r = mysql_fetch_array($sql)) {
//Format Menampilkan data di ezPdf
$data[$i]=array('No'=>$i,
'Nomor Dokumen'=>"$r[Nomor]",
'Nama Pelamar'=>"$r[Nama]",
'Alamat'=>"$r[AlamatKTP]",
'Agama'=>"$r[Agama]",
'Program Study'=>"$r[Jurusan]",
'Jenjang'=>"$r[Jenjang]",
'IPK'=>"$r[IPK]",
'Tgl Melamar'=>"$r[TglSurat]"
);
$i++;
}
//Tampilkan Dalam Bentuk Table
$pdf->ezTable($data);
$pdf->ezText("\nPeriode: $Dari s/d $Sampai");
// Penomoran halaman
$pdf->ezStartPageNumbers(700, 20, 8);
$pdf->ezStream();
}
else{
echo "
<script>
alert('Tidak Di Temukan Data Pelamar');
</script>
";
}
?>
Sekian tutorial ini semoga bermanfaat.