yii How to Creating Pdf Report / Excel Report

Published on Author Code Father

yii How to Creating Pdf Report / Excel Report, Create report,pdf, Excel

Please create new function in your models or you can see in the below:
In your model | e.g. : 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;
        }
And than you have to add this code in action index.
In your controller | e.g. : 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");

                }
}
and now in your view/index.php you can add the code or you can see the code in the below:
In your view | 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="<?=isset($_GET['from']) ? CHtml::encode($_GET['from']) : '' ; ?>" /></td>
                    <td><input type="date" name="until" value="<?=isset($_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>
remain in view but you have to create new php files and use this code:
In your view | e.g. : 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>

Comments

comments