Dalam proses input data transaksi, ada data yang baru dientry dan dikirimkan ke atasan untuk dicek kemudian ada data yang siap disahkan dan ada data yang sudah disahkan dan siap dicetak. Untuk itu kita akan mendapatkan bahwa untuk setiap record ada berbagai macam variasi dari action yang bisa dilakukan.

Dalam Yii kita bisa melakukan kustomisasi CButtonColumn  dengan menggunakan property visible. Contoh penggunaannya adalah sebagai berikut:

        array(
            ‘class’=>’CButtonColumn’,
            ‘template’=>'{view}{send} {correction} {approve} {print} {cancel} {delete}’,
            ‘deleteConfirmation’=>”js: ‘Are you want to delete ‘+$(this).parent().parent().children(‘:nth-child(2)’).text()+ ‘?'”,
            ‘buttons’=>array
            (
                ‘delete’ => array
                (
                    ‘visible’=>’$data->cd_status==0’,
                ),
            
                ‘send’ => array
                (
                    ‘label’=>’S’,
                    ‘options’=>array(‘title’=>’Send for Approve’,’style’=>’font-weight:bold;margin-left:2px;margin-right:2px’),
                    ‘url’=>’Yii::app()->createUrl(“purchaseOrder/send”, array(“id” => $data->purchase_order_id,”exe” => 0))’,
                    ‘visible’=>’$data->cd_status==0’,
                ),

                ‘correction’ => array
                (
                    ‘label’=>’Cor’,
                    ‘options’=>array(‘title’=>’Correction to Draft’,’style’=>’font-weight:bold;margin-left:2px;margin-right:2px’),
                    ‘url’=>’Yii::app()->createUrl(“purchaseOrder/correction”, array(“id” => $data->purchase_order_id,”exe” => 0))’,
                    ‘visible’=>’$data->cd_status==1’,
                ),

                ‘approve’ => array
                (
                    ‘label’=>’A’,
                    ‘options’=>array(‘title’=>’Approve’,’style’=>’font-weight:bold;margin-left:2px;margin-right:2px’),
                    ‘url’=>’Yii::app()->createUrl(“purchaseOrder/approve”, array(“id” => $data->purchase_order_id,”exe” => 0))’,
                    ‘visible’=>’$data->cd_status==1’,
                ),

                ‘cancel’ => array
                (
                    ‘label’=>’Can’,
                    ‘options’=>array(‘title’=>’Cancel’,’style’=>’font-weight:bold;margin-left:2px;margin-right:2px’),
                    ‘url’=>’Yii::app()->createUrl(“purchaseOrder/cancel”, array(“id” => $data->purchase_order_id,”exe” => 0))’,
                    ‘visible’=>’$data->cd_status==2’,
                ),

                ‘print’ => array
                (
                    ‘label’=>’P’,
                    ‘options’=>array(‘title’=>’Print’,’style’=>’font-weight:bold;margin-left:2px;margin-right:2px’,’target’=>’cetak’),
                    ‘url’=>’Yii::app()->createUrl(“purchaseOrder/print”, array(“id” => $data->purchase_order_id))’,
                    ‘visible’=>’$data->cd_status==2’,
                ),
            )
        ),

Pada contoh diatas kita akan mengevaluasi cd_status dari setiap record dari tabel purchase_order.
Jika cd_status bernilai 0 maka action yang bisa dilakukan ‘Send for Approve’ dan ‘Delete’.
Jika cd_status bernilai 1 maka action yang bisa dilakukan adalah ‘Approve’.
Jika cd_status bernilai 2 maka action yang bisa dilakukan adalah ‘Print’ dan ‘Cancel’.

Artikel yang mirip dengan ini adalah http://www.proweb.co.id/articles/web_application/show_field_cdetailview.html dan http://www.proweb.co.id/articles/web_application/show_hide_column_cgridview_yii.html.

Kunjungi www.proweb.co.id untuk menambah wawasan anda.

Show/hide CButtonColumn di Yii