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