Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Menyembunyikan Tab di PreviewRow Jika Tidak Ada Data di Table Detail
Template Keren Ini Mendukung Horizontal dan Vertical Layout untuk PHPMaker 2017
Begini Mudahnya Membuat Field Lookup dengan Modal Dialog Menjadi ReadOnly

Mudahnya Menyembunyikan Tab di PreviewRow Jika Tidak Ada Data di Table Detail

Sab, 25 Maret 2017 oleh Masino Sinaga 13 Komentar

Belum pernah ada Aplikasi Web yang saya lihat saat menampilkan data yang memiliki relasi Master/Detail secanggih, sebagus, dan sefleksibel Aplikasi Web yang dihasilkan oleh PHPMaker. Apalagi jika relasinya Master/Multiple-Detail, yang artinya satu tabel Master yang dihubungkan dengan beberapa tabel Detail sekaligus.

Mengapa saya katakan demikian? Karena PHPMaker memiliki kemampuan menghasilkan fitur PreviewRow untuk menampilkan data table Detail di bawah baris record Master di halaman List milik tabel Master menggunakan teknik AJAX. Artinya, Pengguna Akhir Aplikasi Web dapat menampilkan dan menyembunyikan tabel Detail cukup dengan mengklik tombol plus (+) atau tombol Preview Row.

Jadi, tabel Detail dapat ditampilkan dan disembunyikan tanpa harus memuat ulang semua konten di halaman List milik tabel Master-nya. Bahkan, Pengguna Akhir semakin dimanjakan lagi dengan adanya kemampuan untuk menampilkan tabel Detail tersebut menggunakan fitur Preview Overlay, yaitu dengan menggeser kursor mouse ke tombol tertentu. Benar-benar canggih dan bagus.

Lalu di mana letak kefleksibelannya? Di artikel ini kita akan membuktikannya. Katakanlah di project demo, kita menggunakan contoh tabel orders sebagai Master, sedangkan untuk tabel Detailnya, kita menggunakan dua tabel sekaligus, yaitu orderdetails (di tab pertama) dan order details extended (di tab kedua).

Selanjutnya kita ingin ketika Pengguna menampilkan tabel Detail melalui fitur PreviewRow, jika tidak ada record ditemukan di tabel Detail yang bernama order details extended, maka kita menyembunyikan tab kedua yang memuat tabel tersebut.

Solusinya cukup dengan menaruh sedikit kode jQuery ke dalam bagian Startup Script yang berada di bawah lokasi Client Scripts -> Table-Specific -> List Page milik tabel orders, sehingga kode selengkapnya menjadi seperti ini:

$(document).on("preview", function(e, args) {
	// Ambil panel tab dari variabel args
	var $tabpane = args.$tabpane;
	// Ambil data link berdasarkan class ewAddEditOption 
	var sLink = $tabpane.find("div:has(.ewAddEditOption)").find("a").attr("href");
	// Ambil data atribut data-target sebagai key unique tab di row tertentu
	var sDataTarget = $(".ewTablePreviewRow td ul li a").attr("data-target");
	// Proses hanya yang memiliki data link
	if (sLink) {
		// Ambil nilai kunci untuk setiap row setelah karakter = yang terakhir
		var myKey = sLink.substr(sLink.lastIndexOf("=") + 1);
		// Ambil jumlah record untuk "order details extended" menggunakan AJAX
		var vRecCount = ew_Ajax("<?php echo ew_Encrypt("SELECT COUNT(*) FROM `order details extended` WHERE OrderID = '{query_value}'"); ?>", myKey);
		// Proses hanya jika jumlah record kurang dari satu alias tidak ada record ditemukan
		if (vRecCount < 1) {
			// Deklarasikan variabel yang terkait atribut untuk menandai tab di setiap row
			var hideThis = {
				'data-table': ['order_details_extended'],
				'data-target': ['' + sDataTarget + '']
			};
			// Mulai proses sembunyikan tab dengan memfilter berdasarkan variabel atribut yang sudah ditentukan sebelumnya
			$('tr > td > ul > li >').filter(function(){
				for (var i in hideThis) {
					var attr = $(this).attr(i),
						match = ('|' + hideThis[i].join('|') + '|').indexOf(attr) > -1;
					if (!match) {
						return false;
					}
				}
				return true;
			}).hide();
		}
	}
});

Sebagai informasi, kode di atas saya hasilkan beberapa menit yang lalu, untuk menjawab pertanyaan di Forum Diskusi PHPMaker: Master Details Hide Second Tab on Condition.

Salah satu pelajaran penting yang bisa kita peroleh dari kode di atas adalah, ternyata PHPMaker sudah menyediakan fungsi Javascript ew_Ajax() yang dapat mengembalikan data tertentu dari Database.

Fungsi ew_Ajax() ini bahkan sudah menyediakan fungsi callback yang bisa dioptimalkan oleh Web Developer untuk menjalankan perintah tertentu.

Dalam contoh di atas, kita tidak menggunakan callback tersebut, karena kita hanya mengambil jumlah record dari Database View yang bernama order details extended berdasarkan field OrderID sebagai kunci yang membedakan antara satu row dengan row yang lain.

Betapa fleksibelnya PHPMaker bagi Web Developer.

Ditempatkan di bawah: PHPMaker Ditag dengan:AJAX, Belajar PHPMaker, Client Scripts, ew_Ajax, jQuery, Master/Detail, PHPMaker Indonesia, Startup Script, 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.

Template Keren Ini Mendukung Horizontal dan Vertical Layout untuk PHPMaker 2017
Begini Mudahnya Membuat Field Lookup dengan Modal Dialog Menjadi ReadOnly

Komentar

  1. Yody mengatakan

    Sab, 8 April 2017 pada 7:13 pm

    Salam Kenal, saya mempunyai file hasil generated dari php maker, saya ingin mengedit isi file tersebut, bagaimana cara yang efektif agar saya bisa mengedit file tersebut ya? karena saya tidak mempunyai file asli(.pmp),terima kasih

    Balas
    • Masino Sinaga mengatakan

      Sel, 11 April 2017 pada 11:37 am

      Cara yang efektif? Ya tidak ada, selain langsung mengedit file yang sudah di-generate itu.

      Balas
  2. ocha mengatakan

    Sen, 15 Mei 2017 pada 11:36 am

    Salam kenal mas,

    Boleh saya nanya saya punya script di filter editor dimana saya mau validasi select
    dari table lain untuk menfilter data yang berdasarkan request transaksi dari table

    “`JobTtlCode` IN (SELECT `JobTtlCode` FROM `vw_vhc_requestvehicle`
    where requestid =
    ‘”.$_GET[‘RequestId’].”‘ )”.

    Pada waktu saya running, tidak ada return error tetapi tidak ada data select yang muncul.

    Makasih

    Balas
    • Masino Sinaga mengatakan

      Jum, 19 Mei 2017 pada 2:10 pm

      Jangan pernah menggunakan variable $_GET, karena jika nilai tersebut tidak ada di URL (karena misalnya berubah), maka cara seperti itu akan selalu gagal.

      Gunakan session variable sebagai gantinya. Silahkan Googling untuk info lebih lanjut dan contoh-contohnya.

      Balas
  3. Nelson H. mengatakan

    Ming, 28 Mei 2017 pada 7:21 am

    Good night Masino
    I am a registered user phpmaker vers.11.
    I would like to know if I can get the extensions for this version and how I could get them

    I do not want to incur additional expenses like buying phpmaker 12.

    Balas
    • Masino Sinaga mengatakan

      Sen, 29 Mei 2017 pada 10:55 am

      Hi Nelson,

      If you meant the Extensions that provided by PHPMaker, then you may simply contact to PHPMaker Support. Hope this helps.

      Balas
  4. diki mengatakan

    Jum, 30 Juni 2017 pada 7:57 pm

    salam mas,
    saya mau tanya kalau memecah data inputan menjadi satu-satu disimpan di tabelnya bagimana caranya ?
    contoh: saya input -. barang kuantitas 3 buah ditabel pinginnya menjadi
    id nama barang qty
    1 nama barang 1
    2 nama barang 1
    3 nama barang 1
    soalnya berguna sekali kalo soal penulusuran aset

    Balas
    • Masino Sinaga mengatakan

      Jum, 30 Juni 2017 pada 8:35 pm

      Ya tinggal Anda rancang saja struktur table-nya, lalu aktifkan fitur Grid Add di PHPMaker.

      Balas
  5. ame mengatakan

    Sen, 21 Agustus 2017 pada 4:04 pm

    Pak masino, sy sudah search di blog ini yg membahas tentang ‘grouping records’ kok tidak ketemu ya? apakah ada pernah diulas?

    Saya ingin membuat tampilan LIST sbb:
    No project : no1 Catatan : pesan 1 dari user A
    pesan 2 dari user B
    pesan 3 dari user C
    No project : no2 Catatan : pesan 1 dari user A
    pesan 2 dari user B
    pesan 3 dari user C

    dst

    Balas
    • Masino Sinaga mengatakan

      Sel, 22 Agustus 2017 pada 9:29 am

      Kalau untuk menampilkan List dalam bentuk groupping, sangat disarankan menggunakan produk PHP Report Maker. Nanti report yang dihasilkan bisa diintegrasikan ke dalam Aplikasi Web yang dihasilkan oleh PHPMaker.

      Balas
      • ame mengatakan

        Jum, 25 Agustus 2017 pada 3:19 pm

        Terimakasih banyak pak

        Balas
  6. Tomi mengatakan

    Rab, 11 Oktober 2017 pada 8:32 pm

    Salam Pak Masino, soy apakah ini masuk dalam bahasan.
    Bagaimana ya caraya menampilkan tanda “+” pada Detail disuatu Record ?

    Saat tanda/ tombol “+” diklik, akan muncul Detail dari Record tersebut.

    Apakah itu menggunakan “Extention” tambahan, atau memang sudah ada di PHP Maker sendiri.
    Mohon pencerahannya Suhu.

    Many Thanks.

    Balas
    • Masino Sinaga mengatakan

      Rab, 11 Oktober 2017 pada 8:38 pm

      Betul, untuk memunculkan tombol + yang jika diklik akan menampilkan record dari table detail, itu menggunakan extension khusus yang bernama Preview. Extension ini hanya tersedia bagi mereka yang sudah mem-purchase PHPMaker.

      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

  • Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Solusi Buat Field Lookup Table yang Bermasalah di Server Hosting
  • Hati-Hati Meredirect Pengguna Setelah Login di PHPMaker 2025
  • Ini Alasan Mengapa Kalian Harus Selalu Pakai PHPMaker versi Terakhir
  • Masino Extensions for PHPMaker 2025 Now Changed!

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Charly pada Menonaktifkan Field Tertentu Saat Data Diubah pada Aplikasi Web dari PHPMaker
  • Nanda pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Nanda pada Mudahnya Menghitung Saldo per Transaksi di Aplikasi Web dari PHPMaker
  • Masino Sinaga pada Menonaktifkan Field Tertentu Saat Data Diubah pada Aplikasi Web dari PHPMaker

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