Reportes en Yii (Exportar datos filtrados del GridView a PDF)

| 2013-05-1 | No hay comentarios »

Para poder exportar datos filtrados del gridview en Yii primeramente debemos de seguir esto.

Cuando se tiene ese primer paso 100% funcional hacer lo siguiente:

1- Ir al modelo deseado y agregar lo siguiente a la función search (en este caso en el modelo Productos):


//Esto es lo que se debe agregar

$session=new CHttpSession;

$session->open();

$session['productos_records']=$criteria;  //Esto para guardar la criteria en la sesión actual para usarlo posteriormente.

//Esto lo pongo nada más como referencia
 return new CActiveDataProvider($this, array(
 'criteria'=>$criteria,
 ));

1-  En el controlador productos  (esto solo en este caso) debemos sustituir la función actionGenerarPdf() por lo siguiente:


public function actionGenerarPdf()
 {
 $session=new CHttpSession;
 $session->open();
 if(isset($session['productos_records']))
//Si hay datos filtrados entonces usar la criteria guardada en la sesion (esto lo guardamos en la funcion search() del modelo)
 {
 $model==Productos::model()->findAll($session['productos_records']);
 }
 else
//Si no hay datos filtrados exportar todo
 {
 $model =Productos::model()->findAll();
 }
 $mPDF1 = Yii::app()->ePdf->mpdf('utf-8','A4','','',15,15,35,25,9,9,'P'); //Esto lo pueden configurar como quieren, para eso deben de entrar en la web de MPDF para ver todo lo que permite.
 $mPDF1->useOnlyCoreFonts = true;
 $mPDF1->SetTitle("JuzgadoSys - Reporte");
 $mPDF1->SetAuthor("JuzgadoSys");
 $mPDF1->SetWatermarkText("JuzgadoSys");
 $mPDF1->showWatermarkText = true;
 $mPDF1->watermark_font = 'DejaVuSansCondensed';
 $mPDF1->watermarkTextAlpha = 0.1;
 $mPDF1->SetDisplayMode('fullpage');
 $mPDF1->WriteHTML($this->renderPartial('pdfReport', array('model'=>$model), true)); //hacemos un render partial a una vista preparada, en este caso es la vista pdfReport
 $mPDF1->Output('Reporte_Productos'.date('YmdHis'),'I');  //Nombre del pdf y parámetro para ver pdf o descargarlo directamente.</pre>
}

Con eso ya podrán exportar a PDF datos filtrados o todo lo que hay en la tabla sin problema alguno.

Acerca del autor: Rodrigo Paszniuk

Ingeniero Informático, amante de la tecnología, la música, el ciclismo y aprender cosas nuevas.

Posts Relacionados

  • Phalcon – Framework PHP – Extensión de C
  • Reportes gráficos en Yii
  • Backup en Yii
  • Manual intermedio de Yii framework (PHP)



SEGUÍNOS EN FACEBOOK


GITHUB