print excel berdasarkan filter

newbie mau bertanya…

saya kan ga paham pemrograman web, tapi diminta untuk mengedit program web framework yii…tuntutan pekerjaan…

dan saya mengalamai kendala untuk menampilkan hasil di excel sesuai filter yang di lakukan di aplikasi. saya hanya bisa menampilkan all record data. maunya bisa berdasarkan filter.

mohon bantuannya

ini penggalan coding di controller





    

    public function actionPrintXls() {

        set_time_limit(0);


            if (!isset($_POST['PHasilAgendaMonitoringPk'])) {

            throw new CHttpException(403, 'Invalid request. Please do not repeat this request again.');

        }

             ini_set('memory_limit', '2G');

        $model = new PHasilAgendaMonitoringPk('searchDisplay');

        $model->attributes = $_POST['PHasilAgendaMonitoringPk'];

        $model->limit = 0;


                //VIEW EXCEL

            $view = $this->renderPartial('/report/kemitraan/lap_monitoringPk', array(

                'model' =>  $model->searchDisplay()->data

            ), true);

            Helper::ToXls('daftarMonitoringPk', $view);


              




    }

    

   



ini penggalan coding di model




<?php




class PHasilAgendaMonitoringPk extends CActiveRecord36 {


    const STATUS_BATAL = -1;

    const STATUS_BELUM = 0;

    const STATUS_SUDAH = 1;

    public $ikut_pameran;

    public $fk_wilayah_id = null;

    /**

     * Returns the static model of the specified AR class.

     * @param string $className active record class name.

     * @return PHasilAgendaMonitoringPk the static model class

     */

    public static function model($className = __CLASS__) {

        return parent::model($className);

    }


    /**

     * @return string the associated database table name

     */

    public function tableName() {

        return 'p_hasil_agenda_monitoring_pk';

    }


    /**

     * @return array validation rules for model attributes.

     */

    public function rules() {

        // NOTE: you should only define rules for those attributes that

        // will receive user inputs.

        return array(

            array(

                'fk_agenda_id, fk_personal_id',

                'required'

            ),

            array(

                'tgl_input, tgl_kunjungan',

                'required',

                'on' => 'entryMonitoring'

            ),

            array(

                'fk_wilayah_id',

                'safe',

                'on' => 'displayMonitoring'

            ),

            array(

                'tahap_penyaluran_kredit, jangka_waktu_angsuran, jumlah_tunggakan, jml_karyawan, rencana_jml_karyawan, hasil_pelatihan_diterapkan, keikutsertaan_pameran, user_act, obsolete',

                'numerical',

                'integerOnly' => true

            ),

            array(

                'nilai_kredit, nilai_angsur_perbulan, nilai_tunggakan, aset_awal, aset_akhir, omzet_awal, omzet_akhir',

                'numerical'

            ),

            array(

                'fk_agenda_id',

                'length',

                'max' => 20

            ),

            array(

                'fk_personal_id, ',

                'length',

                'max' => 11

            ),

            array(

                'kode, sektor_usaha, no_telp, no_hp, status_pinjaman',

                'length',

                'max' => 45

            ),

            array(

                'nama_kode_mitra, alamat',

                'length',

                'max' => 150

            ),

            array(

                'nama_usaha, jenis_produk, jenis_usaha, daerah_pemasaran, nama_pemilik_usaha',

                'length',

                'max' => 100

            ),

            array(

                'mulai_berdiri_tahun, tahun_terdaftar_mitra',

                'length',

                'max' => 4

            ),

            array(

                'tgl_input, tgl_kunjungan, ikut_pameran, penghargaan_pengalaman, permasalahan_dihadapi, pelatihan_list, rekomendasi, time_act',

                'safe'

            ),

            // The following rule is used by search().

            // Please remove those attributes that should not be searched.

            array(

                'id, fk_agenda_id, fk_personal_id, kode, tgl_input, tgl_kunjungan, nama_kode_mitra, nama_usaha, jenis_produk, sektor_usaha, jenis_usaha, mulai_berdiri_tahun, daerah_pemasaran, nama_pemilik_usaha, alamat, no_telp, no_hp, tahun_terdaftar_mitra, tahap_penyaluran_kredit, nilai_kredit, jangka_waktu_angsuran, nilai_angsur_perbulan, jumlah_tunggakan, nilai_tunggakan, status_pinjaman, aset_awal, aset_akhir, omzet_awal, omzet_akhir, jml_karyawan, rencana_jml_karyawan, hasil_pelatihan_diterapkan, keikutsertaan_pameran, penghargaan_pengalaman, permasalahan_dihadapi, pelatihan_list, rekomendasi, user_act, time_act, obsolete',

                'safe',

                'on' => 'search'

            ),

            array(

                'id, fk_agenda_id, fk_personal_id, kode, tgl_input, tgl_kunjungan, nama_kode_mitra, nama_usaha, jenis_produk, sektor_usaha, jenis_usaha, mulai_berdiri_tahun, daerah_pemasaran, nama_pemilik_usaha, alamat, no_telp, no_hp, tahun_terdaftar_mitra, tahap_penyaluran_kredit, nilai_kredit, jangka_waktu_angsuran, nilai_angsur_perbulan, jumlah_tunggakan, nilai_tunggakan, status_pinjaman, aset_awal, aset_akhir, omzet_awal, omzet_akhir, jml_karyawan, rencana_jml_karyawan, hasil_pelatihan_diterapkan, keikutsertaan_pameran, penghargaan_pengalaman, permasalahan_dihadapi, pelatihan_list, rekomendasi, user_act, time_act, obsolete',

                'safe',

                'on' => 'searchDisplay'

            ),

        );

    }


    /**

     * @return array relational rules.

     */

    public function relations() {

        // NOTE: you may need to adjust the relation name and the related

        // class name for the relations automatically generated below.

        return array(

            'fkAgenda' => array(

                self::BELONGS_TO,

                'PAgenda',

                'fk_agenda_id'

            ),

            'fkPersonal' => array(

                self::BELONGS_TO,

                'PPersonal',

                'fk_personal_id'

            ),

        );

    }


    /**

     * @return array customized attribute labels (name=>label)

     */

    public function attributeLabels() {

        return array(

            'id' => 'ID',

            'fk_agenda_id' => 'Agenda',

            'fk_personal_id' => 'Personal',

            'kode' => 'Kode',

            'tgl_input' => 'Tgl Input',

            'tgl_kunjungan' => 'Tgl Kunjungan',

            'nama_kode_mitra' => 'Nama Kode Mitra',

            'nama_usaha' => 'Nama Usaha',

            'jenis_produk' => 'Jenis Produk',

            'sektor_usaha' => 'Sektor Usaha',

            'jenis_usaha' => 'Jenis Usaha',

            'mulai_berdiri_tahun' => 'Mulai Berdiri Tahun',

            'daerah_pemasaran' => 'Daerah Pemasaran',

            'nama_pemilik_usaha' => 'Nama Pemilik Usaha',

            'alamat' => 'Alamat',

            'no_telp' => 'No Telp',

            'no_hp' => 'No Hp',

            'tahun_terdaftar_mitra' => 'Tahun Terdaftar Mitra',

            'tahap_penyaluran_kredit' => 'Tahap Penyaluran Kredit',

            'nilai_kredit' => 'Nilai Kredit',

            'jangka_waktu_angsuran' => 'Jangka Waktu Angsuran',

            'nilai_angsur_perbulan' => 'Nilai Angsur Perbulan',

            'jumlah_tunggakan' => 'Jumlah Tunggakan',

            'nilai_tunggakan' => 'Nilai Tunggakan',

            'status_pinjaman' => 'Status Pinjaman',

            'aset_awal' => 'Aset Awal',

            'aset_akhir' => 'Aset Akhir',

            'omzet_awal' => 'Omzet Awal',

            'omzet_akhir' => 'Omzet Akhir',

            'jml_karyawan' => 'Jml Karyawan',

            'rencana_jml_karyawan' => 'Rencana Jml Karyawan',

            'hasil_pelatihan_diterapkan' => 'Hasil Pelatihan Diterapkan',

            'keikutsertaan_pameran' => 'Keikutsertaan Pameran',

            'ikut_pameran' => 'Keikutsertaan Pameran',

            'penghargaan_pengalaman' => 'Penghargaan Pengalaman',

            'permasalahan_dihadapi' => 'Permasalahan Dihadapi',

            'pelatihan_list' => 'Daftar Pelatihan',

            'rekomendasi' => 'Rekomendasi',

            'user_act' => 'User Act',

            'time_act' => 'Time Act',

            'obsolete' => 'Obsolete',

        );

    }


    


    public function searchDisplay() {

        // Warning: Please modify the following code to remove attributes that

        // should not be searched.


        $criteria = new CDbCriteria;


        $criteria->with = array(

            'fkAgenda' => array('joinType' => 'inner join'),

            'fkAgenda.fkPelaksana1' => array('joinType' => 'inner join'),

            'fkPersonal' => array('joinType' => 'inner join'),

            'fkPersonal.fkWilayah' => array('joinType' => 'inner join')

            );

        $criteria->condition = "t.kode is not null";

        if (!empty($this->fk_wilayah_id)) {

            $criteria->addCondition("fkWilayah.id=:wilayah_id or fkWilayah.fk_wilayah_id=:wilayah_id or fkWilayah.fk_provinsi_id=:wilayah_id or fkWilayah.fk_kota_id=:wilayah_id");

            $criteria->params = array(":wilayah_id" => $this->fk_wilayah_id);

        }

        if (!empty($this->fkAgenda->fkPelaksana1->nama)) {

            $criteria->addCondition('fkAgenda.fkPelaksana1.nama like "%' . $this->fkAgenda->fkPelaksana1->nama . '%"');

        }

        if (!empty($this->kode)) {

            $criteria->addCondition('t.kode like "%' . $this->kode . '%"');

        }

        if (!empty($this->nama_kode_mitra)) {

            $criteria->addCondition('t.nama_kode_mitra like "%' . $this->nama_kode_mitra . '%"');

        }

        if (!empty($this->nama_usaha)) {

            $criteria->addCondition('t.nama_usaha like "%' . $this->nama_usaha . '%"');

        }

        if (!empty($this->sektor_usaha)) {

            $criteria->addCondition('t.sektor_usaha like "%' . $this->sektor_usaha . '%"');

        }

        if (!empty($this->jenis_produk)) {

            $criteria->addCondition('t.jenis_produk like "%' . $this->jenis_produk . '%"');

        }

               

        $criteria->addCondition ("fkAgenda.fk_regional_id in ({$this->regional})");

        $criteria->compare('t.id', $this->id);

        $criteria->compare('t.fk_agenda_id', $this->fk_agenda_id);


        $criteria->compare('t.tgl_input', $this->tgl_input, true);

        $criteria->compare('t.tgl_kunjungan', $this->tgl_kunjungan, true);

        $criteria->compare('t.nama_kode_mitra', $this->nama_kode_mitra, true);


        $criteria->compare('t.jenis_usaha', $this->jenis_usaha, true);

        $criteria->compare('t.mulai_berdiri_tahun', $this->mulai_berdiri_tahun, true);

        $criteria->compare('t.daerah_pemasaran', $this->daerah_pemasaran, true);

        $criteria->compare('t.nama_pemilik_usaha', $this->nama_pemilik_usaha, true);

        $criteria->compare('t.alamat', $this->alamat, true);

        $criteria->compare('t.no_telp', $this->no_telp, true);

        $criteria->compare('t.no_hp', $this->no_hp, true);

        $criteria->compare('t.tahun_terdaftar_mitra', $this->tahun_terdaftar_mitra, true);

        $criteria->compare('t.tahap_penyaluran_kredit', $this->tahap_penyaluran_kredit);

        $criteria->compare('t.nilai_kredit', $this->nilai_kredit);

        $criteria->compare('t.jangka_waktu_angsuran', $this->jangka_waktu_angsuran);

        $criteria->compare('t.nilai_angsur_perbulan', $this->nilai_angsur_perbulan);

        $criteria->compare('t.jumlah_tunggakan', $this->jumlah_tunggakan);

        $criteria->compare('t.nilai_tunggakan', $this->nilai_tunggakan);

        $criteria->compare('t.status_pinjaman', $this->status_pinjaman, true);

        $criteria->compare('t.aset_awal', $this->aset_awal);

        $criteria->compare('t.aset_akhir', $this->aset_akhir);

        $criteria->compare('t.omzet_awal', $this->omzet_awal);

        $criteria->compare('t.omzet_akhir', $this->omzet_akhir);

        $criteria->compare('t.jml_karyawan', $this->jml_karyawan);

        $criteria->compare('t.rencana_jml_karyawan', $this->rencana_jml_karyawan);

        $criteria->compare('t.hasil_pelatihan_diterapkan', $this->hasil_pelatihan_diterapkan);

        $criteria->compare('t.keikutsertaan_pameran', $this->keikutsertaan_pameran);

        $criteria->compare('t.penghargaan_pengalaman', $this->penghargaan_pengalaman, true);

        $criteria->compare('t.permasalahan_dihadapi', $this->permasalahan_dihadapi, true);

        $criteria->compare('t.pelatihan_list', $this->pelatihan_list, true);

        $criteria->compare('t.rekomendasi', $this->rekomendasi, true);

        $criteria->compare('fkPelaksana1.nama', $this->user_act, true);

        $criteria->compare('t.time_act', $this->time_act, true);

        $criteria->compare('t.obsolete', $this->obsolete);




        $limit = $this->limit == 0 || empty($this->limit) ? $this->count($criteria) : $this->limit;

        

        return new CActiveDataProvider($this, array(

            'criteria' => $criteria,

            'pagination' => array('pageSize' => $limit),

        ));

    }


    

 


}



ini coding di view tampilan hasil data dan tombol di aplikasi




<?php

$this->breadcrumbs = array(

    'Display Monitoring' => array('display/monitoringPk'),

    'Manage',

);


$this->pageTitle = 'Kelola Display Monitoring';




Yii::app()->clientScript->registerScript('search', "

$('#btn_cari').click(function(){

	$.fn.yiiGridView.update('pproposal-pk-grid', {

		data: {'PHasilAgendaMonitoringPk[fk_wilayah_id]': $('#fk_wilayah_id').val()}

	});

	return false;

});

", CClientScript::POS_END);


?>


<div class="well">

    <legend>Filter</legend>

    <?php

    $this->widget('ext.wilayah.Wilayah', array(

        'name' => 'fk_wilayah_id',

        'display' => 'leftToRight',

        'width' => '220px',

        'allowClear' => true

    ));

    echo '<hr>';

    echo CHtml::button('CARI', array('id' => 'btn_cari', 'class' => 'btn btn-primary'));

    ?>

</div>


<div style="width: 100%; overflow-x: auto;">

    <?php

    //if (Yii::app()->user->regional == PRegional::REGIONAL_TONASA) {

        $this->widget('ext.iAct.IAct', array(

        'url' => 'hasilAgendaMonitoringPk/printXls',

        //'value' => $_GET['ajax'],

        'id' => 'btnDownlodMonitoringPk',

        'idForm' => 'formDownloadMonitoringPk',

        

        'includeElement' => array('PHasilAgendaMonitoringPk' =>  array(

                                array('name' => 'fk_agenda_id', 'selector' => '$("#fk_agenda_id")'),

                                array('name' => 'kode', 'selector' => '$("#kode")'),

                                array('name' => 'nama_kode_mitra', 'selector' => '$("#nama_kode_mitra")'),

                                array('name' => 'nama_usaha', 'selector' => '$("#nama_usaha")'),

                                array('name' => 'sektor_usaha', 'selector' => '$("#sektor_usaha")'),

                                array('name' => 'jenis_produk', 'selector' => '$("#jenis_produk")'),

//                                array('name' => 'tgl_kunjungan', 'selector' => '$("#PProposalPk_search_mitra")'),

//                                array('name' => 'rekeningBank', 'selector' => '$("#PProposalPk_rekeningBank")'),

//                                array('name' => 'search_tgl', 'selector' => '$("#PProposalPk_search_tgl")'),

//                                array('name' => 'search_tgl_diterima', 'selector' => '$("#PProposalPk_search_tgl_diterima")'),

                            ) ), 

        'titlePopover' => '',

        'class' => 'icon-circle-arrow-down xls',

        'contentPopover' => 'Download Monitoring PK'

        ));

    //}


    $this->renderPartial('_gridMonitoringPK', array('model' => $model)); 

    ?>

</div>