Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

[ask] how to export record data to excel based on filter

$
0
0
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
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>

Viewing all articles
Browse latest Browse all 18717

Trending Articles