Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Membatasi Hanya 1 Record di Halaman List Aplikasi Web dari PHPMaker
Mudahnya Memvalidasi Input Periode Tanggal di Aplikasi Web dari PHPMaker
Mudahnya Menjumlahkan Nilai di Kolom Baru di Aplikasi Web dari PHPMaker

Mudahnya Membatasi Hanya 1 Record di Halaman List Aplikasi Web dari PHPMaker

Sel, 11 November 2014 oleh Masino Sinaga 7 Komentar

Pernahkah Anda mengalami kesulitan ketika ingin membatasi jumlah Record yang akan ditampilkan di dalam tabel yang terdapat di halaman List pada Aplikasi Web yang dihasilkan oleh PHPMaker? Jika ya, maka uraian pada artikel ini akan menjadi solusinya buat Anda sebagai Web Developer!

Katakanlah di halaman Orders pada file demo project Aplikasi Web yang telah disediakan oleh PHPMaker, Anda ingin membatasi hanya satu Record saja yang ditampilkan di halaman List tersebut. Artinya, hanya boleh ada satu baris (row) Record saja yang kelihatan di halaman tersebut. Record kedua dan seterusnya harus disembunyikan.

Karena hanya ada satu Record saja yang akan ditampilkan, maka itu artinya hanya Record pertama dari Recordset yang digunakan di halaman List tersebut saja yang akan diambil. Sementara yang kita ketahui, Recordset di halaman Orders tadi secara standar (default) memiliki lebih dari satu Record dan mereka akan diurutkan berdasarkan field OrderID dengan orientasi pengurutan dari besar ke kecil (DESC).

Nah, ternyata ada kebutuhan bahwa kita harus mengubah terlebih dulu orientasi pengurutan menjadi dari kecil ke besar (ASC), yang dalam hal ini berarti kita mengambil ID Pesanan yang terkecil, lalu menampilkannya. Meskipun di dunia nyata biasanya kita akan mengambil ID Pesanan yang terakhir, tapi dalam contoh berikut kita akan mengubah urutan Recordset-nya dari DESC menjadi ASC. Tujuannya supaya kita bisa melihat betapa fleksibelnya kemampuan PHPMaker untuk mengubah orientasi pengurutan Record melalui kode pada bagian server event.

Solusinya sangatlah mudah, cepat, dan simpel. Kita hanya cukup menambahkan sedikit kode saja, baik dari bagian Server Events maupun dari Client Scripts. Lebih tepatnya, kita hanya menggunakan dua server event dan satu client script saja. Solusi ini untuk kesekian kalinya membuktikan bahwa PHPMaker bukan hanya sekedar Tools PHP Code Generator saja, tapi lebih dari itu. PHPMaker sangat powerful sekaligus fleksibel dalam menghasilkan Aplikasi Web dengan pola business-logic seperti apapun yang kita inginkan.

Baiklah, supaya tidak berlama-lama lagi, silahkan langsung ikuti langkah-langkah berikut.

  1. Pastikan Anda sudah membuka file demo project PHPMaker. Jika belum, Anda dapat men-download file demo project tersebut dari alamat ini: http://www.hkvstore.com/phpmaker/php11demo.zip.
  2. Saya asumsikan Anda selanjutnya sudah berhasil menyesuaikan setting koneksi ke Database di localhost Anda (jika belum, baca Help-nya). Lalu, klik tabel orders dari panel Database, kemudian klik tab Code (Server Events, Client Scripts and Custom Templates), dan tambahkan kode berikut ke dalam server event Page_Load yang terdapat di bawah lokasi ini: Server Events -> Table-Specific -> List Page:

    	$this->setSessionOrderBy("`OrderID` ASC");
    

    Tujuan dari kode ini adalah, kita harus mengubah terlebih dulu orientasi pengurutan Record dari yang semula DESC menjadi ASC pada field OrderID.

  3. Langkah selanjutnya, tambahkan kode ini ke dalam server event Row_Rendered:

    	if (CurrentPageID() == "list" && $this->RowAttrs["data-rowindex"] > 1) {
    		$this->RowAttrs["style"] = "display: none";
    	}
    

    Arti dari kode ini adalah, kita memastikan bahwa baris Record yang akan disembunyikan hanya jika ID dari halaman yang ditampilkan adalah list, dan juga yang atribut data-rowindex-nya milik property RowAttrs dari object Table atau Page lebih besar dari 1, yang artinya mulai dari Record ke-2, ke-3, dan seterusnya.

    Tentu saja, Anda bisa mengkostumisasi nilai dari kondisi if di atas, misalnya hanya menampilkan 3 Record teratas, maka Anda tinggal mengubah kode

    	if (CurrentPageID() == "list" && $this->RowAttrs["data-rowindex"] > 1) {
    

    menjadi:

    	if (CurrentPageID() == "list" && $this->RowAttrs["data-rowindex"] > 3) {
    

    dan seterusnya…

  4. Sampai di sini kita sudah berhasil menambahkan kode PHP di bagian Server Events. Selanjutnya, kita akan menyembunyikan bagian Paging atau Pager yang terdapat di bagian atas dan atau bawah tabel. Tentu saja hal ini juga penting, karena kalau bagian Paging tidak disembunyikan, maka hasilnya menjadi tidak sinkron dengan jumlah Record atau row yang terdapat di dalam tabel pada halaman List tadi. Untuk itu, pastikan Anda sudah menambahkan kode jQuery berikut ke dalam Startup Script yang terdapat di bawah Client Scripts -> Table-Specific -> List Page:

        $('.ewPager').hide();
    

    Sekali lagi, fungsi dari kode ini adalah untuk menyembunyikan bagian Paging atau Pager yang menampilkan navigasi halaman. Kita cukup menyembunyikan elemen berdasarkan nama class-nya, yaitu ewPager.

  5. Terakhir, dan seperti biasa, pastikan Anda sudah men-generate ulang semua file script dengan menggunakan PHPMaker. Setelah itu, jalankan Aplikasi Web yang sudah dihasilkan melalui browser favorit Anda. Klik menu Orders, maka sekarang seharusnya Anda melihat hanya satu Record atau satu Row saja yang muncul di tabel pada halaman List tersebut.

Sampai di sini, cobalah lihat kembali kode yang sudah kita tambahkan tadi. Hanya beberapa baris saja, tapi betapa dahsyat hasilnya untuk mengimplementasikan kebutuhan tersebut. Bahkan, untuk menyembunyikan elemen tertentu di halaman List, kita bisa bermain-main dengan kode jQuery saja!

Betapa mudah, cepat, sekaligus menyenangkan sekali, bukan? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Client Scripts, Page_Load, PHPMaker Indonesia, Row_Rendered, Server Events, Server Events and Client Scripts, 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.

Mudahnya Memvalidasi Input Periode Tanggal di Aplikasi Web dari PHPMaker
Mudahnya Menjumlahkan Nilai di Kolom Baru di Aplikasi Web dari PHPMaker

Komentar

  1. Cak Sobri mengatakan

    Sen, 17 November 2014 pada 8:35 am

    Terus bagaimana akses untuk halaman view,edit, atau delete, soalnya kalo diakses dengan URL yang menyangkut ID data yang disembunyikan masih bisa diakses/dilihat.

    Balas
    • Masino Sinaga mengatakan

      Sen, 17 November 2014 pada 10:34 am

      Saya kasih clue-nya saja ya. Anda bisa menggunakan server event Row_Selected untuk memeriksa key dari record tertentu dan apakah record tersebut diakses melalui halaman View atau Edit. Jika memenuhi kondisi tersebut, maka tinggal arahkan Pengguna kembali ke halaman List.

      Gimana, sudah ada gambaran, ‘kan? 😀

      Balas
      • Masino Sinaga mengatakan

        Sen, 17 November 2014 pada 12:34 pm

        Ya sudah kalau gitu, nih saya kasih penjelasannya: Mudahnya Membatasi Akses ke Record Tertentu di Aplikasi Web dari PHPMaker.

        Balas
        • Cak Sobri mengatakan

          Sen, 17 November 2014 pada 1:10 pm

          Sip, biasanya saya ceknya pake Page_Load, ternyata ada yg lebih mudah lagi (y) 🙂

          Balas
  2. Nanda mengatakan

    Jum, 20 Januari 2017 pada 10:55 am

    Bang Masino, saya buat Tabel Transaksi yg Beberapa Filed nya menggunakan Text Auto Fill yg mengacu ke Tabel Master dan beberapa menggunakan Lookup (Select).
    Jumlahnya : 3 (Auto Fill) dan 9 (Lookup Select/ Combobox) yg mengacu ke Tabel Master.
    (untuk salah satu Tabel Master nya Data nya mencapai Ribuan.)

    Permasalahan nya adalah, Halaman List pada Tabel tersebut menjadi Lambat di Muat, untuk Halaman Add dan yg lain Tidak masalah, dan untuk Tabel yang lain juga tidak ada masalah.
    Pertanyaan saya :
    Apakah Lambat di Muat tersebut karena Banyak Lookup ke Tabel Master, atau bukan ya ?
    karena sebelumnya saya juga pernah buat yang hampir mirip tapi gak ada masalah, data Master nya juga sama.
    dan yang Lambat hanya pada Halaman List.

    Balas
    • Masino Sinaga mengatakan

      Sel, 24 Januari 2017 pada 8:49 am

      Bisa ya, bisa tidak. Tergantung kompleksitas dari Lookup Table-nya juga. Kalau jumlah record dari table lookup-nya banyak, apalagi ada filter-nya juga, ya jelas semakin lambat.

      Balas

Trackbacks

  1. Mudahnya Membatasi Akses ke Record Tertentu di Aplikasi Web dari PHPMaker – Masino Sinaga berkata:
    Sen, 17 November 2014 pukul 12:20 pm

    […] Pada artikel kali ini, lagi-lagi kita akan menampilkan salah satu dari sekian banyaknya kejutan itu. Sekalipun server event yang terkait dengan kejutan ini sudah pernah kita bahas dulu, tapi tidak ada salahnya jika kita bahas kembali. Apalagi di artikel yang ini terkait erat dengan salah satu artikel saya mengenai Mudahnya Membatasi Hanya 1 Record di Halaman List Aplikasi Web dari 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

  • Masino Extensions for PHPMaker 2025 Now Changed!
  • Begini Mudahnya Mengurangi Lebar Combobox pada PHPMaker 2025
  • 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

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Cara Mengetahui Detail Error di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021
  • Dendi pada Cara Mengetahui Detail Error di Aplikasi Web yang Dihasilkan oleh PHPMaker 2021
  • Charly pada PHPMaker: PHP Code Generator + PHP Framework
  • Masino Sinaga pada PHPMaker: PHP Code Generator + PHP Framework
  • Masino Sinaga pada PHPMaker: PHP Code Generator + PHP Framework

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