Pada versi-versi major sebelum PHPMaker 2021, kita dapat menggunakan satu baris kode PHP berikut untuk mengambil data di bagian table Master untuk ditampilkan di bagian table Detail, seperti yang sudah pernah kita bahas pada artikel Mengambil Data Master untuk Ditampilkan di Tabel Detail pada Halaman Master/Detail.
Katakanlah pada demo project PHPMaker 2020, kita ingin mengambil data dari field CustomerID pada table Master yang bernama orders, untuk ditampilkan di bagian bawah dari table Detail yang bernama orderdetails, pada halaman Master/Detail List.
Cukup copy dan paste-kan kode berikut ke server event Page_DataRendered milik table orderdetails:
$footer = "Customer ID: " . $GLOBALS['orders']->CustomerID->CurrentValue;
Sayangnya, kode tersebut sudah tidak berlaku lagi pada PHPMaker 2021. Penyebabnya, karena di v2021, PHPMaker menggunakan Container() untuk membungkus object table, termasuk untuk table Master pada halaman Master/Detail List tadi.
Kode di atas, cukup kita ganti menjadi seperti ini:
$footer = "Customer ID: " . Container("orders")->CustomerID->CurrentValue;
Perhatikanlah bahwa jika di versi 2020 dan sebelumnya, kita bisa menggunakan variable global dengan nama table Master-nya, sedangkan mulai versi 2021, kita cukup menggantinya dengan menggunakan object Container().
Betapa mudah dan cepatnya, bukan?
Gak pake lama.
Gak pake ribet.
PHPMaker, gitu lho! 😉
Charly mengatakan
Mat Malam Pak Masino.
Mohon bantuannya kalo pesan seperti ini:
C:\xampp\htdocs\dpu-2022\src\DbTableBase.php(393): Obsolete property: tbl_data_awal_04_sub_kegiatan_Count, please use Container(‘tbl_data_awal_04_sub_kegiatan’)->Count.
tabel Program dibuat Master/Detai dengan tabel Kegiatan
tbl_data_awal_02_program.KdTa = tbl_data_awal_03_kegiatan.KdTa
tbl_data_awal_02_program.KdProg = tbl_data_awal_03_kegiatan.KdProg
kemudian
tabel Kegiatan dibuat Master/Detai dengan tabel SubKegiatan
tbl_data_awal_03_Kegiatan.KdTa = tbl_data_awal_04_SubKegiatan.KdTa
tbl_data_awal_03_KegiatanKdProg = tbl_data_awal_04_SubKegiatan.KdProg
tbl_data_awal_03_KegiatanKdSubKeg = tbl_data_awal_04_SubKegiatan.KdSubKeg
Reerential Integrity = Uncheck
Cascade Delete = Uncheck
Cascade Update = Uncheck
Aku pake PHP Maker v.2021 0.011
Masino Sinaga mengatakan
Pastikan Anda menggunakan versi minor terakhir, baik untuk PHPMaker, yaitu 2021.0.15, demikian juga dengan extension Preview-nya.
Charly mengatakan
Makasih Pak Masino.
Masino Sinaga mengatakan
Sama-sama.
Charly mengatakan
Mat Siang Pak Masino.
Pak Masino, mohon bantuannya…
Saya ada kendala pada saat generet project yaitu menggunakan master/detail, ada beberapa view yang saya buat dengan master/detail tombol link ke table detailnya tidak ada, tapi view-view yang lain yang dibuat master/detailnya berhasil. Kemudian saya coba membuat view master ke 2 tabel detail tombolnya muncul…mohon pencerahannya Pak Masino.
Aku pake PHP Maker v.2023.9
Charly mengatakan
Mat Pagi Pak Masino…
Sambil menunggu pencerahaanya dari Pak Masino, saya sudah mencoba dan ternyata berhasil dengan meng-non aktifkan Use Button Dropdown.
Makasih Pak Masino.
Masino Sinaga mengatakan
Sama-sama.
sandy mengatakan
ijin bertanya pak, adakah contoh ketika login , data yang ditampilkan dalam sebuah form hanya berdasarkan username / user id login tersebut ? terima kasih
Masino Sinaga mengatakan
Ada. Contoh project demo2024 bisa Anda download dan coba di localhost.
Dari aplikasi web, login menggunakan user nancy dengan password 1234, maka setelah login, cek menu Orders, maka akan menampilkan data pesanan milik user nancy saja.
Charly mengatakan
Mat Malam Pak Masino.
Pak, mohon pencerahannya. Kenapa ya pada Master/Detail sebelumnya saya berhasil membuat relasi dari tabel Master ke Detail, tapi kemudian saya mau menambahkan lagi relasi yang baru yaitu detailnya Report, tapi setiap di generate, link master detailnya tidak muncul. Mohon pencerahan dari Pak Masino. Makasih
Masino Sinaga mengatakan
Harusnya muncul. Pastikan untuk men-generate ulang semua file script tanpa terkecuali, supaya relasi Master/Detail untuk update yang terbaru tetap muncul.
Charly mengatakan
Makasih Pak Masino, dicoba sesuai petunjuk. Salam
Masino Sinaga mengatakan
Sama-sama.