0

詳細ビューとグリッドビューの両方を含むビューページがあります。グリッドビューは詳細ビューデータで自動的に塗りつぶされます.1つの重要なことは、詳細ビューモデルとグリッドビューモデルが異なるモデルから取得する必要があることです.マヌル。また、ビューはpdfおよびExcelビューにエクスポートする必要があります。

私のview.phpは

   <?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
    'id',
    'invoice_no',
    'invoice_date',
    'dc_no',
    'dc_date',
    'client',
    'total_amount',
    'status',
),
)); ?>

   <?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'invoice-transaction-grid',
'dataProvider'=>$dataProvider->search(),
'filter'=>$model,
'columns'=>array(
    //'invoice_id',
//'invoice_no',
    'dc_no',
    'client',
   /*array(
    'name'=>'client',
        'value'=>'Client::model()->findByPk($data->client)->Client_name',

   'filter'=>CHtml::listData(Client::model()->findall(),'Client_id','Client_name'),
    ),*/
    'project',
     /*array(
        'name'  => 'project',
        'value' => 'Project::model()->findByPk($data->project)->proj_name',
   'filter'=>CHtml::listData(Project::model()->findall(),'proj_id','proj_name'),
        ),*/
    'complexity',
  /*array(
        'name'  => 'complexity',
        'value' => 'Complexity::model()->findByPk($data->complexity)->Complexity_Name',

   'filter'=>CHtml::listData(Complexity::model()->findall(),'id','Complexity_Name'),
        ),*/
    'totalpage',
    'rate_per_page',
    'total_amount',

    /*array(
        'class'=>'CButtonColumn',
    ),*/
),
     )); ?>

詳細ビュー データ ('invoice_no') によって自動的にフィルター処理されたグリッドを表示する必要があります。上記のビューのコントローラー

public function actionView($id)
{
 //$dataProvider=new CActiveDataProvider('InvoiceTransaction');


    $dataProvider=new InvoiceTransaction('search');//this is a different model
    $dataProvider->unsetAttributes();  // clear any default values
    if(isset($_GET['InvoiceTransaction']))
        $dataProvider->attributes=$_GET['InvoiceTransaction'];
    $this->render('view',array(
        'model'=>$this->loadModel($id),'dataProvider'=>$dataProvider,
    ));
}

私の問題を解決する方法..誰でも提案することができます

ANSWERこんにちは、フィルタリングの質問に対する回答を得ました。コントローラにデフォルトのフィルタ値を追加しました

public function actionView($id)
{
 //$dataProvider=new CActiveDataProvider('InvoiceTransaction');
     $model=$this->loadModel($id);

    $dataProvider=new InvoiceTransaction('search');
    $dataProvider->unsetAttributes();  // clear any default values
    if(isset($_GET['InvoiceTransaction']))
        $dataProvider->attributes=$_GET['InvoiceTransaction'];
        $dataProvider->invoice_no=$model->invoice_no;/// this line only gave me answer

 //$model->unsetAttributes(); 
      if(isset($_GET['InvoiceMaster']))
        $dataProvider->attributes=$_GET['InvoiceMaster'];
    $this->render('view',array(
        'model'=>$model,'dataProvider'=>$dataProvider,
    ));
}

しかし、現在、同じファイルの詳細ビューとグリッドビューの両方を pdf または Excel にエクスポートするのに苦労しています。

4

2 に答える 2

2

PHPExcelは、Excel ドキュメントを作成し、PDF にエクスポートできます。いくつかの例はここにあります

于 2012-04-05T15:13:56.793 に答える
1

この拡張機能PHPExcelを使用すると、グリッドビューを Excel ファイルに簡単にエクスポートできます。

于 2012-04-05T19:15:34.483 に答える