2017-02-19 11 views
0

を使用して私のテーブルでは、私は印刷ボタンをクリックするとすべての私のボタンは私のpdfファイルだけでなく、buttons.Here私はコンボボックスとbuttons.Also私は私の生成されたPDFファイルのスタイルをしたいスキップしたい。エクスポートテーブルリストkartikのMPDFのextension.Iは、検索ボタンデータリストの私のレポートview.Onのクリックで3コンボボックスを持って、私は私が使用しているdata.Hereのリストについては、PDFファイルを生成しようとしていますkartikのMPDF

マイビューコード:

<?php 
use yii\helpers\Html; 
use yii\widgets\ActiveForm; 
use app\models\FiscalYear; 
use app\models\CodeValue; 
use yii\helpers\ArrayHelper; 
use app\models\CompanyInfo; 
?> 

<?php $form = ActiveForm::begin(['id' => 'Company-report', 
     'action' => ['company-report'], 
     'method' => 'POST', 

    ]); ?> 

      <div class="col-sm-2"> 
       <?= $form->field($model, 'fy_id')->dropDownList(
       ArrayHelper::map(FiscalYear::getAllFiscalYr(),'fy_id','fiscal_yr'), 
       ['prompt'=>Selct Fiscal Year.।'])?> 
      </div> 

      <div class="col-sm-3"> 
        <?= $form->field($model, 'sfcl_id')->dropDownList(
       ArrayHelper::map(Company::getCompanyData(),'company_id','company_name'), 
       ['prompt'=>'Select Company'])?> 

      </div> 

     <table> 
     <tr> 

     <?= Html::submitButton('Search',[ 'name'=>'view', 'value' => 'view', 'class' => 'btn btn-default']) ?> 
     <?= Html::submitButton('Print',[ 'name'=>'print', 'value' => 'print','target'=> '_blank', 'class' => 'btn btn-default']) ?> 

     </tr> 
     </table> 

     <br/><br/> 


    <?php ActiveForm::end(); ?> 
    <div class="box"> 
      <div class="box-header with-border"> 
       <h3 class="box-title"><b>Report</b></h3> 
      </div> 
     </div> 
    <div class="box-body table-responsive no-padding"> 
    <table class="table table-hover" id="myDemoTable" cellpadding="0" cellspacing="0"> 

     <tbody> 
      <tr> 
       <td style="font-weight: bold;">Sn.</td> 
       <td style="font-weight: bold;">Fiscal Yr</td> 
       <td style="font-weight: bold;">P1</td> 
       <td style="font-weight: bold;">P2</td> 
       <td style="font-weight: bold;">P3</td> 
       <td style="font-weight: bold;">E1</td> 
       <td style="font-weight: bold;">E2</td> 
       <td style="font-weight: bold;">E3</td> 
       <td style="font-weight: bold;">E4</td> 
       <td style="font-weight: bold;">E5</td> 

      </tr> 
      <?php 

      $fyId=$model->fy_id; 
      $companyId=$model->company_id; 
      $pearlFinancial=array(); 

      $companyData=Yii::$app->db->createCommand("select * from company_report where fy_id='$fyId' and company_id='$companyId' ")->queryAll(); 

      $sn=1; 
      if (empty($companyData)) { 
       return; 
      }else{ 


      foreach($companyData as $pearl) 
      { 
      ?> 
      <tr> 
       <td><?php echo $sn; ?></td> 
       <td><?php 
       $fisYear=FiscalYear::findFiscalYearById($model->fy_id); 
       echo($fisYear->fiscal_yr); 

       ?></td> 
       <td><?php echo $pearl['P1']; ?></td> 
       <td><?php echo $pearl['P2']; ?></td> 
       <td><?php echo $pearl['P3']; ?></td> 
       <td><?php echo $pearl['E1']; ?></td> 
       <td><?php echo $pearl['E2']; ?></td> 
       <td><?php echo $pearl['E3']; ?></td> 
       <td><?php echo $pearl['E4']; ?></td> 
       <td><?php echo $pearl['E5']; ?></td> 

      </tr> 
      <?php 
      $sn++; 
      }} 
      ?> 

     </tbody> 
    </table> 
    </div> 

私のコントローラは、次のとおりです。

public function actionPearlFinancialReport() 
{  
    $model = new CompanyReport; 

    if ($model->load(Yii::$app->request->post()) && $model->validate()) { 
     if (isset($_POST['print'])) { 
     $pdf = new Pdf([ 
     'mode' => Pdf::MODE_UTF8, 
     'format' => Pdf::FORMAT_A4, 
     'orientation' => Pdf::ORIENT_PORTRAIT, 
     'destination' => Pdf::DEST_BROWSER, 
     'content' => $this->renderPartial('company_report', ['model' => $model,]), 
     'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css', 
     'cssInline'=> '.kv-heading-1{font-size:40px}', 
     'options' => ['title' => 'Pearl Financial Report'], 
     'methods' => [ 
      'SetHeader'=>['Company Report'], 
      'SetFooter'=>['{PAGENO}'], 
     ] 
    ]); 


    $response = Yii::$app->response; 
    $response->format = \yii\web\Response::FORMAT_RAW; 
    $headers = Yii::$app->response->headers; 
    $headers->add('Content-Type', 'application/pdf'); 

    return $pdf->render(); 
     } 

    } 

    return $this->render('company_report',['model'=>$model]); 
} 

は私の問題とのいずれかを助けることができますか?

答えて

0

あなたの問題は、フォームおよびPDFの両方を生成するために、同じビューを使用していることです。おそらく、ボタンとコンボボックスを省略できるpdfレポートのための別個のビューファイルが必要になります。

コントローラには、既にレポートのスタイルを設定するコードがあります。 cssInlineを使用するか、「cssFile」を使用して独自のcssファイルを組み込むことによって

1

あなたがブートストラップ(おそらくあなたがkartikウィジェットを使用している場合)を使用していると仮定すると、印刷クラス。あなたのコードに適用する:

<?php $form = ActiveForm::begin(['id' => 'Company-report', 
    'action' => ['company-report'], 
    'method' => 'POST', 
    'options' => [ 
     'class' => 'hidden-print', 
    ], 
]); ?> 
+0

ありがとう、私は 'mpdf 'がこれらの' css'クラスを尊重していることを知らなかった。私のソリューションよりもはるかにエレガントで、レポート全体を1つのファイルに保存します。 –

+0

はいいいです - 私はそれが非常に便利だと思います – sonofagun

関連する問題