Satu lagi bukti nyata bahwa begitu fleksibelnya PHPMaker digunakan untuk membangun Aplikasi Web yang dinamis dan sesuai dengan kebutuhan maupun business logic yang ditentukan oleh Web Developer, adalah dengan disediakannya kemampuan untuk menyembunyikan kolom di halaman Export Data. Anda sebagai Web Developer tidak perlu memodifikasi file script yang sudah di-generate oleh PHPMaker. Anda tidak perlu memodifikasi Template yang digunakan oleh PHPMaker. Anda cukup menggunakan fitur Server Events di PHPMaker.
Seperti yang sudah kita ketahui, PHPMaker memiliki fitur Export Data pada Aplikasi Web yang dihasilkannya ke dalam 7 output, yaitu: Printer Friendly (Ramah Cetakan), Ekspor ke Excel, Ekspor ke Word, Ekspor ke CSV, Ekspor ke XML, Ekspor ke HTML, Ekspor ke PDF, dan Send to Email. Kadang-kadang, tidak semua kolom di tabel pada halaman List harus diekspor. Ada kalanya kita perlu menyembunyikan kolom tertentu untuk tipe Export Data tertentu.
Katakanlah kita akan menyembunyikan Field atau kolom ContactTitle jika Pengguna melakukan Export Data yang output-nya ke Printer Friendly. Maka solusinya sangatlah sederhana. Cukup letakkan tiga baris kode ini ke dalam server event Page_Load di bawah lokasi Server Events -> Table-Specific -> List Page:
if ($this->Export == "print") { $this->ContactTitle->Exportable = FALSE; }
Perhatikan kode tersebut, kita cukup hanya menggunakan property Export milik class Table untuk memeriksa tipe output keluaran dari Export Data. Untuk Printer Friendly, maka kita menggunakan nilai print. Selanjutnya jika tipe output tersebut memenuhi syarat, maka set property Exportable milik field ContactTitle dengan nilai FALSE, sehingga kolom ini tidak diikutkan untuk diekspor datanya.
Sedangkan untuk tipe output Export Data lainnya dari yang sudah saya sebutkan di atas tadi, masing-masing adalah: excel, word, csv, xml, html, pdf, dan email.
Betapa mudah dan simpel sekali, bukan? 😀
Pak bgmn jika sy ingin menyembunyikan berdasarkan level user. misal level 2 yg sembunyikan field contactnya sdgkn untuk level lain tidak / maksudnya tetap muncul
Tinggal diubah saja bagian if menjadi seperti ini:
Terima Kasih Pak atas pencerahannya
coba diatas export to excel. di v2019 kok hanya hedearnya yg hilang tapi kolomnya tetap ada isi. mohon pencerahannya bang Masino. terimakasih sebelymnya
if ($this->Export == “excel”) {
$this->ContactTitle->Exportable = FALSE;
}
Sayangnya saya sudah tidak menggunakan v2019. Sudah coba versi terakhir, yaitu v2021?
Bang Masino, ini dipakai di Versi 2023 sudah engga bisa ya ?
saya coba cari di Help nya belum ketemu, dan saya coba ganti seperti ini :
kode seperti diatas juga masih belum bisa..
Betul, sudah tidak bisa jika menggunakan PHPMaker 2023 tanpa menggunakan Masino Extensions.
Tapi, nah, ini dia… jika menggunakan Masino Extensions for PHPMaker 2023, kode di atas berfungsi sebagaimana mestinya.
Hehehe, penasaran kan? 😉
wooow keren juga ya,
mungkin masih bisa diakali dengan Custom Link (Print) + Custom File kayaknya bisa, hehee
cuma agak kurang efektif.
Tidak perlu pakai Custom File. Cukup mengubah logic Export Print jadi menggunakan API Export, ditambah sedikit penyesuaian di akhiran URL-nya.
Output datanya pun lebih printer friendly, karena tidak menyertakan warna/style.
Semua itu bisa disolusikan melalui penggunaan Masino Extensions for PHPMaker 2023.