Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Memastikan Halaman yang Dibuka Master/Detail Edit di Aplikasi Web dari PHPMaker
Syarat Supaya Pilihan Multiple Muncul di Panel Edit Tag Field Select dari PHPMaker
Menimpa Pengaturan dalam File php.ini Melalui Project PHPMaker

Memastikan Halaman yang Dibuka Master/Detail Edit di Aplikasi Web dari PHPMaker

Ming, 12 Juli 2015 oleh Masino Sinaga 4 Komentar

Seperti yang sudah kita ketahui, PHPMaker menyediakan fungsi global untuk mendeteksi ID dari halaman yang sedang diakses oleh Pengguna. Kita bisa menggunakan fungsi CurrentPageID(), yang akan mengembalikan nilai seperti add, edit, list, view, search, dan seterusnya.

Untuk halaman tunggal memang tidak ada masalah. Contohnya, kita hanya menampilkan data dari satu table tunggal seperti orders saja atau orderdetails saja.

Lalu pertanyaannya adalah, bagaimana cara membedakan antara halaman tunggal dengan halaman Master/Detail yang di dalamnya menyertakan data Master dan Detail sekaligus?

Katakanlah di halaman Master/Detail Edit yang menampilkan data table orders (sebagai Master) dan data table orderdetails (sebagai Detail), kita ingin memastikan bahwa itu adalah halaman Edit untuk mengubah data dari kedua table tadi.

URL dari halaman Master/Detail Edit yang saya maksud, contohnya adalah seperti ini:

ordersedit.php?showdetail=orderdetails&OrderID=123

Solusinya ternyata sangatlah mudah. Kita tetap mengandalkan fungsi global CurrentPageID() tadi, lalu dikombinasikan dengan penggunaan method getCurrentDetailTable milik dari object Page atau Table dari halaman yang sedang kita buka.

Sehingga untuk contoh kasus di atas tadi, kode PHP-nya adalah:

echo "ID Halaman: ".CurrentPageID();
echo "<br>Table Detail: ".CurrentPage()->getCurrentDetailTable();

dan akan menampilkan keluaran hasil seperti ini:

ID Halaman: edit
Table Detail: orderdetails 

O iya, kode tersebut bisa Anda tempatkan misalnya di server event Page_Render yang lokasinya berada di bawah Server Events -> Table-Specific -> Edit Page.

Jadi, arti dari keluaran kode di atas, kita sedang membuka halaman Edit yang mengandung data table Detail orderdetails, sehingga bisa disimpulkan bahwa halaman yang diakses saat itu adalah halaman Master/Detail Edit.

Perlu diketahui juga, bahwa PHPMaker selain bisa menampilkan form Master/Detail Edit untuk satu table Detail, dia juga bisa menampilkan halaman Master/Detail Edit untuk beberapa table Detail. Jadi, method getCurrentDetailTable tadi akan mengembalikan lebih dari satu nama table Detail, di mana antara satu table Detail dengan table Detail lainnya dipisahkan dengan karakter koma.

Sedangkan jika kode di atas dijalankan juga di halaman tunggal orders saja atau orderdetails saja, maka method getCurrentDetailTable tadi akan mengembalikan nilai string kosong.

Dari kode di atas, kita dapat melakukan pemeriksaan melalui server event Page_Render halaman Edit milik table Master (sekali lagi, table Master dan bukan table Detail), sehingga kode selengkapnya menjadi seperti ini:

// Page Render event
function Page_Render() {
	//echo "Page Render";
	if (CurrentPageID() == "edit" && CurrentPage()->getCurrentDetailTable() == "orderdetails") {
		// tulis kode Anda di sini saat mode Master/Detail Edit ...
		// ...
	}
}

Kesimpulannya, kita sebagai Web Developer dengan mudahnya bisa membedakan apakah halaman itu adalah halaman Edit tunggal (untuk satu table) atau halaman Master/Detail Edit (untuk dua table atau lebih).

Wow, betapa mudah, cepat, simpel, dan menyenangkan sekali, bukan? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, getCurrentDetailTable, Master/Detail, Master/Detail Edit, PHPMaker Indonesia, Server Events, Tutorial PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com dan ilovephpmaker.com.

Syarat Supaya Pilihan Multiple Muncul di Panel Edit Tag Field Select dari PHPMaker
Menimpa Pengaturan dalam File php.ini Melalui Project PHPMaker

Komentar

  1. alfa mengatakan

    Sen, 4 April 2016 pada 10:06 pm

    Selamat malam pak….Bila tombol edit di table master/detil sudah diedit sekali langsung read only dan sudah tidak bisa diedit lagi gimana caranya ya pak maksud sya contoh kodenya mohon bantuanya pak….trimakasih

    Balas
    • Masino Sinaga mengatakan

      Sel, 5 April 2016 pada 9:57 am

      Sekarang saya tanya balik, supaya bisa tahu apakah sudah pernah diedit atau belum, apa yang seharusnya Anda lakukan pada table yang terkait? Perlu ada tambahan field, nggak? Coba jawab dulu.

      Balas
  2. alfa mengatakan

    Sel, 5 April 2016 pada 10:22 am

    Sudah sya coba edit pak…..dan sya perlu tambahan field…….contohnya sya punya order dan order detil modify nya kode dari kedua table tersebut….yang saya akan edit ialah table orderdetil di kolom keterangan….maksud say sih sebenarnya agak mirip dengan pembuatan surat jalan…..bila surat jalan dicetak dengan no tertentu maka sudah tidak bisa diedit lg…..mohon bantuanya pak

    Balas
    • Masino Sinaga mengatakan

      Sel, 5 April 2016 pada 10:41 am

      Nah, itu logikanya sudah dapat kan. Jika sudah pernah diedit, update field tambahan tadi dengan nilai tertentu. Selanjutnya saat menampilkan halaman itu kembali, lakukan query ke database, cek nilai pada field tambahan tadi, dan jika nilainya sesuai dengan kriteria tertentu, tinggal disable aja tombol Edit-nya menggunakan server event ListOptions_Rendered. Gampang kan?

      Balas

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

Pos-pos Terbaru

  • Begini Mudahnya Mengubah Lebar Modal Dialog di PHPMaker 2022
  • Item Menu Tetap Aktif Meskipun Sedang Menampilkan Halaman Tambah, Ubah, Tampilkan, Cari di PHPMaker 2022
  • Hati-Hati Memilih Versi PHP Sebelum Generate Code di PHPMaker 2022
  • Alasan AlwaysUseEnglishUSLocale Sebaiknya Aktif di Masino Extensions untuk PHPMaker 2022
  • MasinoInputMask18 Extension, Autoformat Angka dengan Fitur Lebih Kaya di PHPMaker 2022

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Masino Sinaga pada Project Stock Inventory untuk PHPMaker 2022 Sekarang Sudah Bisa Didownload
  • Stanislaus Ariyanto pada Project Stock Inventory untuk PHPMaker 2022 Sekarang Sudah Bisa Didownload
  • Masino Sinaga pada Mudahnya Mendapatkan Info Pengguna Setelah Login di Aplikasi Web dari PHPMaker
  • irwan pada Mudahnya Mendapatkan Info Pengguna Setelah Login di Aplikasi Web dari PHPMaker
  • Masino Sinaga pada Ini Dia Fitur-Fitur yang Terdapat di Masino Extensions untuk PHPMaker 2022

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2021 | WordPress | Catat masuk | Kembali ke atas