Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Begini Mudahnya Membuat Field Lookup dengan Modal Dialog Menjadi ReadOnly
Mudahnya Menyembunyikan Tab di PreviewRow Jika Tidak Ada Data di Table Detail
Mudahnya Menyembunyikan Tombol Delete di Halaman View dari PHPMaker

Begini Mudahnya Membuat Field Lookup dengan Modal Dialog Menjadi ReadOnly

Rab, 22 Maret 2017 oleh Masino Sinaga 9 Komentar

Sejak versi 2017 atau 13, PHPMaker memiliki fitur baru berupa Modal Dialog pada field yang Lookup ke Table tertentu. Tujuannya, agar Pengguna dapat mencari atau mem-browse record dengan lebih mudah dan cepat, apalagi jika jumlahnya relatif sangat banyak. Jadi, record yang banyak tadi tidak lagi ditampilkan di control Combobox.

Adanya fitur baru ini tentu saja mengubah cara PHPMaker menampilkan data pada field tersebut menjadi sedikit lebih kompleks. Artinya, PHPMaker menambahkan kode lebih banyak, hanya untuk me-render control tadi dengan menyertakan tombol browse yang memiliki icon kaca pembesar.

Tombol browse ini berada di samping field tersebut pada Aplikasi Web yang dihasilkan oleh PHPMaker. Jika Pengguna Akhir Aplikasi Web mengklik tombol tersebut, maka sistem akan menampilkan form dalam jendela Modal Dialog, untuk mencari data, lalu memilih data yang diinginkan.

Tidak hanya itu saja. PHPMaker juga menambahkan kemampuan supaya Pengguna Akhir Aplikasi Web dapat menampilkan jendela Modal Dialog, dengan cara mengklik data pada field tadi. Jadi, selain mengklik tombol browse di atas, mereka juga dapat mengklik tulisan pada field tersebut untuk membuka jendela Modal Dialog.

Semua perubahan di atas tentu saja berpengaruh kepada cara kita sebagai Web Developer dalam memodifikasi kode jika ingin membuat field tersebut menjadi Read Only. Dengan kata lain, kita tidak dapat lagi menggunakan property ReadOnly milik field tersebut, untuk men-disable control tersebut pada Form.

Pertanyaan selanjutnya, lalu bagaimana cara kita men-disable field yang Lookup ke Table tertentu dan menggunakan Modal Dialog untuk memilih/mencari data?

Bukan PHPMaker namanya, jika kita sebagai Web Developer tidak dapat mengatasi permasalahan tersebut. Solusinya sangatlah sederhana. Cukup menambahkan sedikit kode jQuery saja ke bagian Startup Script.

Katakanlah dalam hal ini kita fokus ke halaman/form Edit, karena biasanya kita ingin men-disable field tersebut saat Pengguna Akhir mengubah data di halaman Edit.

Supaya kita lebih mudah memahami dan langsung mencobanya, misalkan kita menggunakan field Trademark dari table cars di project demo. Untuk itu, pastikan kita sudah mengaktifkan pengaturan Use modal dialog for lookup dari bagian Fields project demo tersebut.

Setelah itu, tambahkan kode berikut ke bagian Startup Script yang terdapat di bawah lokasi Client Scripts -> Table-Specific -> Edit Page:

$(document).ready(function() {
	$("div #r_Trademark .ewLookupBtn").hide(); // sembunyikan tombol browse yang ada icon kaca pembesar
	$("#aol_x_Trademark").hide(); // sembunyikan tombol untuk menambah data Trademark on-the-fly
	$("div #lu_x_Trademark").removeAttr("onclick"); // hilangkan kemampuan click
	$("div #lu_x_Trademark").click(function() { // bila perlu tampilkan pesan bahwa field ini tidak bisa diubah
		ew_Alert("Tidak bisa diubah ya!");
	});
});

Terakhir, generate ulang semua file script seperti biasa menggunakan PHPMaker. Kemudian, jalankan Aplikasi Web dari browser, dan perhatikan sekarang bahwa tombol browse bergambar icon kaca pembesar tadi sudah tidak ditampilkan lagi.

Jika Pengguna mengklik data pada field, maka sistem akan merespon dengan menampilkan pesan bahwa data tidak bisa diubah. Jadi, fungsi Modal Dialog sudah dinonaktifkan, alias tidak dapat digunakan lagi. Seperti yang kita inginkan.

Selain itu, tombol untuk menambah data Trademark juga ikut disembunyikan. Hal ini sekaligus membuktikan bahwa untuk men-disable fungsi penambahan data Trademark on-the-fly, kita cukup menyembunyikan elemennya saja menggunakan kode jQuery.

Tentu saja, kita bisa menambahkan kondisi sesuai kebutuhan kita untuk men-disable field tersebut. Contoh, kita ingin hanya untuk Level Pengguna 1 saja field tersebut di-disable. Kita bahkan bisa menambahkan pemeriksaan kondisi tersebut menggunakan kode PHP di bagian kode jQuery tadi, sehingga kode di atas menjadi seperti ini:

<?php if (CurrentUserLevel() == "1") { ?>
$(document).ready(function() {
	$("div #r_Trademark .ewLookupBtn").hide(); // sembunyikan tombol browse yang ada icon kaca pembesar
	$("#aol_x_Trademark").hide(); // sembunyikan tombol untuk menambah data Trademark on-the-fly
	$("div #lu_x_Trademark").removeAttr("onclick"); // hilangkan kemampuan click
	$("div #lu_x_Trademark").click(function() { // bila perlu tampilkan pesan bahwa field ini tidak bisa diubah
		ew_Alert("Tidak bisa diubah ya!");
	});
});
<?php } ?>

Satu lagi fakta dari sekian banyaknya fitur yang membuktikan bahwa PHPMaker semakin powerful, tapi juga masih tetap fleksibel dari dulu sampai sekarang.

Betapa PHPMaker semakin membantu meringankan pekerjaan Web Developer. Buat yang belum menggunakan PHPMaker, masihkah Anda bertahan menggunakan cara-cara kuno atau konvensional dalam membangun Aplikasi Web? 🙂

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Client Scripts, jQuery, Lookup Field, Lookup Table, PHPMaker Indonesia, 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, ilovephpmaker.com, dan phpmakerprojects.com.

Mudahnya Menyembunyikan Tab di PreviewRow Jika Tidak Ada Data di Table Detail
Mudahnya Menyembunyikan Tombol Delete di Halaman View dari PHPMaker

Komentar

  1. Alex mengatakan

    Rab, 19 April 2017 pada 2:34 pm

    Saya coba berkali2 tidak ada pengaruh apa2 ya pak

    Balas
    • Masino Sinaga mengatakan

      Jum, 21 April 2017 pada 11:34 pm

      Di tempat saya berhasil.

      Balas
      • Alex mengatakan

        Sen, 24 April 2017 pada 10:56 pm

        Maksud sy di grid nya pak

        Balas
        • Masino Sinaga mengatakan

          Sel, 25 April 2017 pada 8:16 am

          Sebelumnya Anda tidak bilang grid pada komentar pertama di atas?

          Balas
  2. Alex mengatakan

    Jum, 28 April 2017 pada 12:40 am

    Sori pak
    Knapa tidak bisa diterapkan di gridadd

    Balas
    • Masino Sinaga mengatakan

      Jum, 28 April 2017 pada 8:52 am

      Karena id elemen di form gridadd tidak sama dengan id elemen di form add yang biasa.

      Balas
  3. ame mengatakan

    Sen, 21 Agustus 2017 pada 9:30 am

    pak masino, sy ini lagi coba2 buat testing project semacam erp sambil belajar. Ini lagi mentok di cara membuat calculasi otomatis di sebuah field.

    Simplenya fieldA + fieldB = field C.

    Sy sudah berhasil dengan memakai row_inserting. Tapi harus klik submit dulu baru valuenya terisi. Maunya saya fieldC muncul value nya tanpa menekan submit pak. Mohon petunjuknya. kayak gini https://www.w3schools.com/Jsref/tryit.asp?filename=tryjsref_onkeyup2

    Balas
    • Masino Sinaga mengatakan

      Sen, 21 Agustus 2017 pada 9:40 am

      Sepertinya artikel ini bisa membantu: Menampilkan Hasil Perhitungan pada Sisi Client di Aplikasi Web dari PHPMaker.

      Balas

Trackbacks

  1. Improvement Fitur Read Only di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021 – Masino Sinaga berkata:
    Rab, 9 Juni 2021 pukul 2:54 pm

    […] di artikel ini kita harus menangani lagi dengan menggunakan kode khusus untuk membuat icon lookup supaya menjadi […]

    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

  • Mudahnya Mengubah Nilai Delay Auto Hide Success Message di PHPMaker 2025
  • Mudahnya Berpindah Layout dari Table ke Cards di Halaman List lewat PHPMaker 2025
  • Jangan Lupa Pakai AdjustSql Saat Insert atau Update Data Lewat ExecuteStatement
  • File-File yang Wajib Diperhatikan Setelah Menambah Item User Values di PHPMaker 2025
  • Begini Cara Memuat Tables dari Database Secara Dinamis di PHPMaker 2025

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Nano pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Masino Sinaga pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. 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 - 2025 | WordPress | Catat masuk | Kembali ke atas