Oct 5, 2016

Menampilkan Laporan Di PHP Berdarsarkankan Tanggal

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  :
ezpdf-laporan berdasarkan kondisi
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. 
  1.  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.
  2. 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>&nbsp;</td>
             <td>&nbsp;</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> 

Membuat Laporan di php
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.
Share:

43 comments:

  1. Mas bisa bantu saya selesaikan script ? saya pake JeasyUI dan CI juga.. sejenis private juga boleh

    ReplyDelete
  2. Terima kasih.. Sangat Membantu saya,,.. Terus berbagi. :D

    ReplyDelete
  3. terimakasih tutornya mas, baru artikel dpt membantu masalah saya.

    ReplyDelete
  4. mas, bole minta source code fullnya ?
    terima kasih

    ReplyDelete
  5. mas, kalo misalnya kita ingin mencetak datanya berdasarkan range tanggal tertentu gmn ya, kemudian dalam laporannya range waktu tersebut ikut tercetak beserta tanggal sekarang juga tercetak. mohon bantuannya. terimakasih

    ReplyDelete
  6. boleh minta link download source code yang full nya nggak mas ? WA : 085376369313

    ReplyDelete
  7. mba maaf mau tanya itu gambar yang jpg nya saya coba ubah gambar yang lain gabisa yah? Mohon pencerahannya :')

    ReplyDelete
  8. mas boleh minta tolong saya mau buat laporan per tanggal tapi saya coba pake ini eror

    ReplyDelete
  9. gan saya coba bisa tp orientasinya ko potrait ya ?

    ReplyDelete
  10. terimakasih banyak gang codingya

    ReplyDelete
  11. Gan kenapa error d bagian ezpdfclassnya ya gan? Mohon bantuannya gan saya sudah ikuti step by step d atas

    ReplyDelete
  12. Mohon bantuannya gan saya butuh ini banget terima kasih

    ReplyDelete
  13. Mas cara menampilkan tulisan MA'ARIF di judul laporan header gmn yah mas caranya.??

    ReplyDelete
  14. Mas bisa tolong bantuan nya bagaimana cara memfilter data di web berdasarkan jabatan dan jenis kelamin

    ReplyDelete
  15. Mas bisa tolong bantuan nya bagaimana cara memfilter data di web berdasarkan jabatan dan jenis kelamin

    ReplyDelete
  16. Mas saya pke html2pdf saat print database tidak nampak masalahnya apa yah mas tnk...

    ReplyDelete
  17. Min, saya punya cript seperti ini:

    $query = "SELECT * FROM barang_masuk WHERE (tgl_masuk BETWEEN '$tgl1' AND '$tgl2')INNER JOIN master_barang ON barang_masuk.id_master = master_barang.id_master";

    tapi error,

    ReplyDelete
    Replies
    1. $query = SELECT barang_masuk .id_master,barang_masuk .tgl_masuk
      FROM barang_masuk
      LEFT JOIN master_barang
      ON barang_masuk.id_master = master_barang.id_master
      WHERE barang_masuk.tgl_masuk BETWEEN '$tgl1' AND 'tgl2'
      ORDER BY barang_masuk.tgl_masuk

      Coba pakai query diatas bos

      Delete
  18. ini blog orang bandar lampung tohhh, salam kenal admin

    ReplyDelete
  19. 19956
    ----
    ----
    ----
    ----
    ----
    ----
    ----
    matadorbet
    ----

    ReplyDelete
  20. B3901
    ----
    ----
    ----
    ----
    ----
    ----
    ----
    matadorbet
    ----

    ReplyDelete

Hosting Unlimited Indonesia

MESSAGE

Name

Email *

Message *