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):
1 2 3 4 5 6 7 8 9 10 11 12 | //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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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.