Facebook Fanpage


martes, 30 de octubre de 2012

Exportar del CGridView a PDF

Amigos hoy les traigo una forma de como Exportar del CGridView a PDF y buscando en los foros de Yii me encontré con esta información espero les sirva como me sirvió a mi, sin mas aquí esta la explicación:

- Lo primero que hacemos es bajarnos la ultima versión de MPDF de su pagina oficial http://www.mpdf1.com/mpdf/  y la colocamos en protected/extensions

- Copiamos en el controlador de la tabla a la que se hará el reporte la siguiente función:

   public function actionPdf($id)
    {
        $this->render('pdf',array(
            'model'=>$this->loadModel($id),
        ));
    }

- Colocamos pdf en la funcion accessRules() del mismo controlador para que los usuarios puedan acceder a la acción

- En la vista admin sustituir el arreglo de los botones por el siguiente:

 array(
            'class'=>'CButtonColumn',
                    'template' => '{view} {update} {delete} {pdf}',
                'buttons'=>array(
                        'pdf' => array(
                                'label'=>'Generar PDF', 
                                'url'=>"CHtml::normalizeUrl(array('pdf', 'id'=>\$data->id))",
                                'imageUrl'=>Yii::app()->request->baseUrl.'/images/pdf_icon.png', 
                                'options' => array('class'=>'pdf'),
                        ),
                ),
        ),

- En la vista view agregamos la vista de nuestro pdf en el menu:

 array('label'=>'Crear PDF', 'url'=>array('pdf','id'=>$model->id)),

- En mi caso la clave primaria del registro la puse como id en la base de datos, si en tu caso es "id_producto" o algo por el estilo debes cambiarlo cuando se pasa el dato a la vista.

- Y por ultimo tenemos el archivo pdf.php que estará en las vistas:

<?php
$pdf = Yii::createComponent('application.extensions.MPDF52.mpdf');

$html='
<link rel="stylesheet" type="text/css" href="'.Yii::app()->request->baseUrl.'/css/pdf.css" />

<table id="yw0" class="detail-view2">
<tr class="principal">
<td colspan="2" align="center"><b>DATOS DEL CONTRATO</b></td>
<tr>
<tr class="odd"><td> <b>N° Control</b> </td><td> '.$model->num_control.'</td></tr>
<tr class="even"><td> <b>Trimestre Ejecucion</b> </td><td> '.$model->trimestre_ejecucion.'</td></tr>
<tr class="odd"><td> <b>Nombre Estado</b> </td><td> '.$model->estado0["nombre_estado"].'</td></tr>
<tr class="even"><td> <b>Empresa</b> </td><td> '.$model->empresa.'</td></tr>
<tr class="odd"><td> <b>Personal Actuante</b> </td><td> '.$model->personal_actuante.'</td></tr>
<tr class="even"><td> <b>Nombre Tipo Informe</b> </td><td> '.$model->informe0["nombre_tipo_informe"].'</td></tr>
<tr class="even"><td> <b>N° Contrato</b> </td><td> '.$model->num_contrato.'</td></tr>
<tr class="odd"><td> <b>Monto Contratado</b> </td><td> '.$model->monto_contratado.'</td></tr>
<tr class="even"><td> <b>Monto Auditado</b> </td><td> '.$model->monto_auditado.'</td></tr>
<tr class="odd"><td> <b>Porcentaje Ejecucion</b> </td><td> '.$model->porcentaje.'</td></tr>
<tr class="even"><td> <b>Objeto Contrato</b> </td><td> '.$model->objeto_contrato.'</td></tr>
<tr class="odd"><td> <b>Observaciones</b> </td><td> '.$model->observaciones.'</td></tr>
<tr class="even"><td> <b>Recomendaciones</b> </td><td> '.$model->recomendaciones.'</td></tr>
<tr class="odd"><td> <b>Monto Hallazgo</b> </td><td> '.$model->monto_hallazgo.'</td></tr>
<tr class="even"><td> <b>Origen Tramite</b> </td><td> '.$model->origen0["nombre_origen_tramite"].'</td></tr>
</table>

';
$mpdf=new mPDF('win-1252','LETTER','','',15,15,25,12,5,7);
$mpdf->WriteHTML($html);
$mpdf->Output('Ficha-Contrato-'.$model->num_control.'.pdf','D');
exit;
?>

Via: http://www.yiiframework.com/forum/index.php/topic/22694-exportar-del-cgridview-a-pdf/

0 comentarios:

Publicar un comentario