Membuat Report PDF / Report Excel Menggunakan Parameter (Dari - Sampai) pada Yii Framework

Membuat Report PDF / Report Excel Menggunakan Parameter (Dari - Sampai) pada Yii Framework
Asslamualaikum Wr.Wb hai saya Fahmi Azain. Kali ini saya akan berbagi tutorial tentang cara Membuat Report PDF / Report Excel Menggunakan Parameter (Dari - Sampai) pada Yii Framework.
Pertama kalian harus  memenuhi persyaratan dibawah ini:
Untuk Report Pdf : pasang ekstensi pdf report pada aplikasi yii kalian. dan kalian harus paham bagaimana cara membuat report tersebut.
Untuk Report Excel : pasang ekstensi excel report pada aplikasi yii kalian. atau kalian dapat menggunakan bawaan report excel milik yii.
setelah memenuhi persyaratan diatas kalian bisa mulai membaca tutorial ini.
Oke mari kita mulai!

buatlah fungsi baru pada model kalian atau kalian bisa lihat dibawah ini: 

pada model kalian | contoh. : models/Items.php
public function getMyreport()
        {
            $from=$_REQUEST['from'];
            $until=$_REQUEST['until']; 
        $sql="SELECT * FROM items where CREATED_DATE >= '$from' and CREATED_DATE <= '$until' order by ITEM_ID desc "; // your sql here
        $dataReportItem=new CSqlDataProvider($sql,array(
            'keyField' => 'ITEM_ID',
            'pagination'=>array(
                'pageSize'=>10,
            ),
        )); 
        return $dataReportItem;
        }

lalu tambahkan code dibawah ini pada aksi index. 

pada controller kalian | contoh. : controller/ItemsController.php
public function actionIndex(){
if (!Yii::app()->user->isGuest){
 
                $dataReportItem=Items::model()->getMyreport();
                if(isset($_REQUEST['ExcelReport'])){
                        $from=$_REQUEST['from'];
                        $until=$_REQUEST['until'];
                       Yii::app()->request->sendFile('items_periode_'.$from.'-'.$until.'.xls',
                       $this->renderPartial('view_item_report',array(
            'dataReportItem' =>$ dataReportItem,
                       )),true);                
                }
 
                if(isset($_REQUEST['PdfReport'])){
                        $from=$_REQUEST['from'];
                        $until=$_REQUEST['until'];
                        $mPDF1 = Yii::app()->ePdf->mpdf();
                        $mPDF1->WriteHTML($this->renderPartial('view_item_report',array(
            'dataReportKas'=>$dataReportKas,
                        ), true));
                        $mPDF1->Output('items_periode_'.$from.'-'.$until,"I");
 
                }
}

dan sekarang pada view/index.php kalian dapat menambahkan code seperti dibawah ini: 

pada view kalian | e.g. : view/items/index.php
<form method="post">
            <table>
                <tr>
                    <td>Date From</td>
                    <td>Date To</td>
                </tr>
                <tr>
                    <td><input type="date" name="from" value="$_GET['from']) ? CHtml::encode($_GET['from']) : '' ; ?>" /></td>
                    <td><input type="date" name="until" value="$_GET['until']) ? CHtml::encode($_GET['until']) : '' ; ?>" /></td>
                </tr>
            </table>
        <input type="submit" value="Report to Excel" name="'ExcelReport'">
        <input type="submit" value="Report to Pdf" name="'PdfReport'">
        </form>

tetap dalam view Anda harus membuat file php baru dan salin kode ini: 

pada view anda | contoh. : view/items/view_item_report.php
<h3>Items | Periode php echo $_REQUEST['from']." - ".$_REQUEST['until'];?></h3>
php
$this->widget('bootstrap.widgets.TbExtendedGridView', array(
    'fixedHeader' => true,
    'headerOffset' => 40,
    'type' => 'striped',
    'dataProvider' => $dataReportItem,
    'responsiveTable' => true,
    'template' => "{items}",
        'columns'=>array(
            'ID',
            'ITEM_CODE',
            'ITEM_NAME',
            'ITEM_DESC',            
            'CREATED_DATE', // This is a reference for parms / parameters
        ),
    ));?>
<div align="left">
    <b>Printed By : echo Yii::app()->user->name;?><br/>
Printed At : echo date("d/m/Y H:i:s");?></b>
            <div align="right">Copyright &COPY; php echo date('Y'); ?> By Jsource</div>
</div>
Oke Selesai! Jangan lupa berkata Alhamdulillah telah menyelesaikan masalahnya. Saya berharap itu bekerja pada aplikasi kalian.
Terima kasih Telah Membaca
Terima Kasih!
Butuh bantuan untuk error pada Yii Framework atau Pemrograman yang lain?
Contact Me
Facebook : Fahmi Azain
Twitter      : @Fahmi_Jsource
Instagram : Fahmi_Azain