Yang Pertama dan Utama
Yayasan Pendididkan Widya Bakti berdiri dengan Akta Notaris Nomor 43 tanggal 30 Juni 1979, sebagai penyelenggara pendidikan tinggi dibidang komputer yang pertama di Jateng dan DIY dengan nama Akademi Aplikasi Komputer (AKAKOM). Tahun 1985 AKAKOM menjadi AMIK AKAKOM dan akhirnya sejak tahun 1992 menjadi STMIK AKAKOM.
badi, Rab, 20-Nov-2013 04:39:53

Menambahkan Total Atau Subtotal Di Widgets.grid.CGridView

(Oleh Badiyanto)

widgets.grid.CGridView adalah komponen untuk menampilkan hasil delam bentuk tabel. Pada saat Controller memanggil lewat methode render(...), akan memangil file view yang didalamnya terdapat zii.widgets.grid.CGridView, kemudian menyertakan data dalam bentuk array misal 'model'->$model, atau hasil dari Query.

Bagian ini akan mencoba membuat tabel dengan widgets.grid.CGridView dibaris akhir terdapat TOTAL/JUMLAH DATA.

1. Tambahkan fungsi dalam model sebagai berikut :

public function searchLatihan1()
    {
    $sql="SELECT
                id
                ,nama_pelatihan
                ,instruktur
         FROM
               kuliah.tbl_pelatihan";
     
     $dataLatihan=Yii::app()->db->createCommand($sql)->queryAll();   
     $larikData=array();
     $total=0;   
     $i=0;
     
     foreach ($dataLatihan as $dataLatihan1){      
          $i++;     
          $total = $total + $this->hitungJumPes($dataLatihan1["id"]);  
          $larikData[] = array(
                   'no'=>$i,
                   'nama_pelatihan'=>$dataLatihan1["nama_pelatihan"],                    
                   'instruktur'=>$dataLatihan1["instruktur"],         
                   'jumlah'=>$this->hitungJumPes($dataLatihan1["id"])
                );           
            }  
           
           $larikData[] = array(
                         'no'=>"",
                         'nama_pelatihan'=>"",                    
                         'instruktur'=>"TOTAL KESELURUHAN",         
                         'jumlah'=>$total,
                         );
                 
            $dataProvider=new CArrayDataProvider(
                $larikData,array(
                   'keyField'=>false,
                   'pagination'=>array('pageSize'=>100,),
           ));
 
          return $dataProvider; 
         
    }

Penjelasan

perintah :

$sql="SELECT
           id
          ,nama_pelatihan
          ,instruktur
      FROM
          kuliah.tbl_pelatihan"; adalah pengambilan/menapilkan rekaman denga menggunakan Query.

$dataLatihan=Yii::app()->db->createCommand($sql)->queryAll();   hasil query disimpan ke dalam variabel $dataLatihan, $larikData=array(); mendeklarsikan variabel array

 

foreach ($dataLatihan as $dataLatihan1){      
...................} melakukan loop untuk memindahkan data di variabel $dataLatihan ke $larikData

dengan perintah :

 $larikData[] = array(
                   'no'=>$i,
                   'nama_pelatihan'=>$dataLatihan1["nama_pelatihan"],                    
                   'instruktur'=>$dataLatihan1["instruktur"],         
                   'jumlah'=>$this->hitungJumPes($dataLatihan1["id"])
                );           
            }  

dan

$i++;      konter nomor urut,
$total = $total + $this->hitungJumPes($dataLatihan1["id"]);   menjumlahkan disimpan ke dalam variabel total dengan mengambil dari pemanggilan fungsi $this->hitungJumPes($dataLatihan1["id"]);

fungsi $this->hitungJumPes($dataLatihan1["id"]);

public function hitungJumPes($id)
    {     
     return TblPesPelat::model()->count('tbl_pelatihan_id=:id',array(':id'=>$id));
    }

2. Bagian Controller

public function actionJumlahPeserta()
    {
        $model=new TblPelatihan('search');
        $model->unsetAttributes();  // clear any default values
        if(isset($_GET['TblPelatihan']))
            $model->attributes=$_GET['TblPelatihan'];

        $this->render('jumlahPeserta',array(
            'model'=>$model,
        ));
    }
   

3. Bagian Views dalam file jumlahPeserta.php

h1>Laporan Peserta Pelatihan</h1>

<?php echo CHtml::link('Advanced Search','#',array('class'=>'search-button')); ?>
<div class="search-form" style="display:none">
<?php $this->renderPartial('_search',array(
    'model'=>$model,
)); ?>
</div><!-- search-form -->

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'tbl-pelatihan-grid',
    'dataProvider'=>$model->searchLatihan1(),
    'filter'=>$model,
    'columns'=>array(
   
         array(
            'name'=>'id',
            'type'=>'raw',
            'header'=>'ID',
            'value'=>'CHtml::encode($data["no"])',
            'htmlOptions'=>array('width'=>'3%','style'=>'text-align:left'),
        ),
        array(
            'name'=>'nama_pelatihan',
            'type'=>'raw',
            'header'=>'PELATIHAN',
            'value'=>'CHtml::encode($data["nama_pelatihan"])',
            'htmlOptions'=>array('width'=>'30%','style'=>'text-align:left'),  
        ),
         array(
            'name'=>'instruktur',
            'type'=>'raw',
            'header'=>'INSTRUKTUR',
            'value'=>'CHtml::encode($data["instruktur"])',
            'htmlOptions'=>array('width'=>'30%','style'=>'text-align:left'),  
        ),
         array(
            'name'=>'jumlah',
            'type'=>'raw',
            'header'=>'JUMLAH',
            'value'=>'CHtml::encode($data["jumlah"])',
            'htmlOptions'=>array('width'=>'10%','style'=>'text-align:right'),  
        ),
       
    ),
)); ?>

4. Uji Hasilnya



Komentar Untuk memberikan komentar, Silahkan Login atau Daftar sebagai pengguna
nechaje@m.eamale.com, Sel, 1-Agt-2017 15:37:14
uzegupj@m.eamale.com, Sel, 1-Agt-2017 15:24:38
itojaw@pop.eamale.com, Sen, 31-Jul-2017 16:59:11
ubipikotr@w.eamale.com, Sen, 31-Jul-2017 16:41:44
izurukro@w.eamale.com, Sen, 31-Jul-2017 16:28:56
aabadotca@pop.eamale.com, Sen, 31-Jul-2017 16:24:22
augohamu@m.eamale.com, Sen, 31-Jul-2017 16:17:05
Halaman :
artikel, Sel, 22-Agt-2017 08:53:24
Sosialisasi Prodi TI Semester Ganjil 2017/2018
admin, Sen, 8-Mei-2017 04:30:22
Info Penggantian Jadwal Kuliah
admin, Rab, 5-Apr-2017 05:47:27
PENGUMUMAN BEASISWA PPA
admin, Sel, 28-Feb-2017 08:22:12
PENGUMUMAN PKL PRODI TEKNIK INFORMATIKA & SISTEM INFORMASI SEMESTER GENAP T.A. 2016/2017
admin, Jum, 18-Nov-2016 12:26:13
Penambahan Kuota Sertifikasi Internasional
admin, Kam, 17-Nov-2016 08:05:01
Pembagian Kelas Sertifikasi
admin, Jum, 4-Nov-2016 07:49:28
Kuliah Umum NIIT Bagi Mahasiswa Baru 2016
>> Lainnya . . .
admin, Sel, 4-Agt-2015 08:27:35
Kalender Akademik
admin, Jum, 13-Sep-2013 08:05:25
Blog STMIK AKAKOM Yogyakarta
>> Lainnya . . .

Visi & Misi Kumpulan Pedoman & Peraturan Sikeu Portal
.:: Pencarian
.:: Login