Salve a tutti stò cercando di ottenere una query composita, per ricavare un oggetto dataProvider e passare poi all’estensione eexcelview.
Problema uno: non mi è sufficiente assegnare un oggetto Model al dataprovider.
Soluzione uno: al posto del dataProvider userò CSqlDataProvider che mi permette l’uso di una comune query sql.
Problema due: la mia query sql non è come nel codice qui sotto una semplice “SELECT * FROM”, ma bensì un costrutto composto da due query. Volendo ottenere cmq un CSqlDataProvider, dovrei creare un array manualmente con i risultati delle query citate prima o secondo voi esiste un modo + pulito?
<?php
// CONTROLLER
public function actionViewExcel()
{
$sql='SELECT * FROM tbl_paziente';
$dataP=new CSqlDataProvider($sql, array(
'sort'=>array(
'attributes'=>array(
'id', 'cognome', 'indirizzo',
),
),
'pagination'=>array(
'pageSize'=>10,
),
));
$this->renderPartial('view_excel', array('dataP'=>$dataP));
}
?>
<?php
// VIEW
Yii::import('application.extensions.EExcelView');
$this->widget('EExcelView', array(
'dataProvider'=> $dataP,
'title'=>'Test',
'autoWidth'=>true,
'grid_mode'=>'export',
'exportType'=>'Excel2007',
'filename'=>'tabulato',
));
?>