Masih ingat dengan artikel saya yang berjudul Mudahnya Menghitung Saldo per Transaksi di Aplikasi Web dari PHPMaker? Sekedar mengingatkan kembali, artikel itu membahas bagaimana mudahnya kita bisa menambahkan kolom baru di halaman List untuk menampilkan data yang tidak diambil langsung dari Database, tapi berdasarkan perhitungan beberapa Field.
Sayangnya, data yang ditampilkan pada kolom tambahan tersebut tidak akan terikut ketika diekspor ke media tertentu, seperti Printer Friendly, Export to Excel, Export to CSV, dan sebagainya. Nah, di artikel yang ini kita akan membahas bagaimana teknik yang bisa dilakukan oleh Web Developer supaya data di kolom tambahan tadi bisa diikutkan pada fitur Export Data.
Pertama sekali, kita harus membuat sebuah Database View yang bernama saldo_for_export dengan sintaks seperti ini:
CREATE VIEW `saldo_for_export` AS SELECT ID, Tanggal, CASE Jenis WHEN 'M' THEN Nominal ELSE 0 END AS Masuk, CASE Jenis WHEN 'K' THEN Nominal ELSE 0 END AS Keluar, Nominal AS Saldo FROM `transaksi`;
Karena solusi pada artikel ini terkait erat dengan teknik yang telah dijelaskan oleh artikel di atas tadi, maka pastikan Anda sudah membuka file project (yang dibahas pada artikel di atas) dengan menggunakan PHPMaker. Jadi, pastikan Anda sudah mengikuti semua petunjuk pada artikel di atas tadi.
Setelah itu, sekarang lakukan sinkronisasi antara Project PHPMaker dan Database, melalui menu Tools -> Synchronize, supaya Database View yang baru saja kita buat tersebut dimasukkan ke dalam project. PHPMaker akan mengkonfirmasikan adanya perubahan struktur kepada Anda, bahwa terdapat sebuah Database View yang baru. Anda akan diminta untuk menerima perubahan tersebut. Pastikan Anda menyetujuinya.
Pastikan juga Anda sudah memberi tanda centang pada object saldo_for_export dari panel Database pada project PHPMaker Anda, supaya PHPMaker memproses object baru ini. Lalu, pada tab Fields, pilih TOTAL dari kolom Aggregate yang terdapat di bawah kolom List Page.
Selanjutnya klik tab Code (Server Events, Client Scripts and Custom Templates), lalu pastikan Anda memiliki kode seperti ini pada server event Page_Load yang terdapat di bawah lokasi Server Events -> Table-Specific -> List Page. Fungsi kode tersebut untuk menginisiasi sebuah variabel global yang bernama final_saldo dan akan digunakan juga di server event yang lain.
Masih pada bagian Server Events, pastikan kita menambahkan sedikit kode PHP ke dalam server event Row_Rendered yang terdapat di bawah lokasi Server Events -> Table-Specific -> Common. Fungsi kode di server event ini untuk memanipulasi data di setiap baris pada kolom Saldo di mana data asli yang di Database belum menunjukkan data Saldo yang sebenarnya.
Jadi, ini adalah salah satu trik yang bisa kita gunakan jika ingin menyertakan sebuah kolom yang seolah-olah baru atau kolom tambahan supaya disertakan pada fitur Export Data. Kalau Anda perhatikan kode barusan, maka sangat mirip dengan logic kode pada server event ListOptions_Rendered yang dibahas pada artikel di atas.
Sekarang, pastikan Anda sudah mengaktifkan fitur Export Data dari tab menu PHP -> Page Options (Global) -> Export.
Terakhir, generate ulang semua file script dengan menggunakan PHPMaker. Setelah selesai, jalankan aplikasi web dari browser favorit Anda, lalu cobalah untuk mengekspor data dari menu saldo for export, maka seharusnya sekarang kolom Saldo akan muncul di sana.
Wow! Mudah sekali bukan? PHPMaker, gitu lho! 😀
Ingin lihat demonya secara langsung? Klik di sini!
Ingin mendapatkan file project dan databasenya? Klik di sini!
ame mengatakan
Pak masino,
Bgmna jika setiap transaksi mempunyai kategori account bank, misalnya account BCA, BII, Mandiri dll
Bagaimana cara membuat tampilan view saldonya dibedakan berdasarkan account2 tsb? Thanks
usman mengatakan
selamat pagi pak masino saya ada buat buku besar dengan menggunakan fungsi row_rendered diatas dan berhasil,kemudian hasil total dari buku besar seperti kas dipindahkan kekolom kas dineraca begitu juga untuk tipe akun lain juga berhasil,yang jadi masalah pada saat di lakukan fungsi sum dineraca hasilnya tidak sesuai jumlah dana,yang dijumlahkan jumlah dari field bukan dari jumlah total saldo per akun dari fungsi row_rendered tersebut..mohon bantuannya,apakah ada script tambahan untuk mengatasi masalah tersebut….
Masino Sinaga mengatakan
Saya tidak bisa menjawab kalau tidak melihat kode Anda di server event tersebut seperti apa yang sebenarnya.
amran mengatakan
pak saya coba sama persis seperti diatas di phpmaker 2018 trial tp ketika di export muncul fatal error
( ! ) Fatal error: Cannot redeclare cbuku_transaksi_list::ListOptions_Rendered() in C:\Temporary\Ampps\www\belajar\buku_transaksilist.php on line 1909
namun ketika ListOptions Rendered event tidak saya masukkan g eror, tapi ya saldonya g muncul.. mohon solusinya pak
Masino Sinaga mengatakan
Solusinya, periksa lalu perbaiki kode Anda pada baris 1909 dalam file buku_transaksilist.php. Jangan lupa sesuaikan juga kode tersebut pada server event ListOptions_Rendered.