i'm a newbie..
i want to ask how to export record data to excel based on filter? at this time, i just can export all record data.
please help me.
it's code at controller
it's code at model
and it's code at view (not view excel, but view to display result record data and a download button)
i want to ask how to export record data to excel based on filter? at this time, i just can export all record data.
please help me.
it's code at 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); }
it's code at model
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), )); } }
and it's code at view (not view excel, but view to display result record data and a download button)
<?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>