Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Menyaring Record Sebelum Pencarian Data di Aplikasi Web dari PHPMaker
Melakukan Aksi Tertentu Sebelum Record Dihapus di Aplikasi Web dari PHPMaker
Mudahnya Memodifikasi Kriteria Pencarian di Aplikasi Web dari PHPMaker

Menyaring Record Sebelum Pencarian Data di Aplikasi Web dari PHPMaker

Kam, 5 Juni 2014 oleh Masino Sinaga 8 Komentar

Ketika Pengguna mencari data di sebuah Aplikasi Web, maka sebenarnya sistem melakukan penyaringan record dari seluruh kumpulan record yang terdapat di sebuah tabel, lalu hasilnya ditampilkan ke dalam halaman List. Sering kali sebelum hasil pencarian tadi akan ditampilkan ke halaman List, dibutuhkan kondisi penyaringan tambahan yang harus dilakukan oleh Web Developer agar hasil pencarian tadi sesuai dengan kebutuhan sistem.

Contoh: Khusus untuk Pengguna yang memiliki Level Pengguna (User Level) Operator ketika melakukan pencarian data, perlu ditambahkan kondisi tertentu yang sesuai dengan level tersebut pada bagian klausa WHERE dari pernyataan SQL ke Database.

PHPMaker sudah menyediakan server event yang bernama Recordset_Searching yang lokasinya berada di bawah Server Events -> Table-Specific -> Common pada project PHPMaker Anda. Pastikan sebelumnya Anda sudah memilih salah satu tabel yang Anda inginkan dari panel Database di sebelah kiri dari project PHPMaker Anda, untuk memastikan Anda menambahkan kode di server event pada Table yang tepat.

Sesuai dengan namanya, server event ini akan dipanggil pada saat atau menjelang detik-detik pencarian record mulai dilakukan. Itu artinya, Anda sebagai Web Developer masih diberi kesempatan oleh PHPMaker untuk menambahkan kondisi tertentu di bagian klausa WHERE pada pernyataan SQL yang digunakan oleh sistem untuk menyaring record di tabel tersebut.

Server event ini merupakan member dari Class Table. Anda sebagai Web Developer dapat menggunakan member lainnya yang terdapat di Class ini (jika dibutuhkan). Ada satu argumen untuk server event Recordset_Searching, yaitu variabel $filter. Kalau Anda perhatikan dengan seksama, sebenarnya server event ini mirip dengan server event yang dulu sudah pernah kita bahas, yaitu Recordset_Selecting.

Perhatikan contoh berikut:

function Recordset_Searching(&$filter) {
    if (CurrentUserLevel() == 1)  // level 1 = Operator
        ew_AddFilter($filter, "Field1 = '1234'"); // tambahkan ekspresi filter
}

Dalam contoh tersebut, Anda sebagai Web Developer dapat menambahkan (bukan menimpa) kriteria penyaringan dengan menggunakan Global Function yang sudah disediakan oleh PHPMaker bernama ew_AddFilter hanya untuk Pengguna yang memiliki level dengan kode 1 (Operator). Fungsi ini memiliki dua argumen. Argumen pertama merupakan variabel $filter, dan argumen kedua merupakan ekspresi filter yang diinginkan. Pastikan ekspresi filter tersebut valid untuk disisipkan ke dalam pernyataan SQL. Dalam contoh di atas Field1 = ‘1234’ merupakan ekspresi filter yang valid untuk field yang bernama Field1 dan memiliki tipe string/varchar/char.

Perbedaan antara Recodset_Searching dengan Recordset_Selecting adalah, server event Recordset_Searching hanya dipanggil ketika Pengguna melakukan pencarian data, baik dengan menggunakan metode Pencarian Cepat (Quick Search) maupun Pencarian Lanjutan (Advanced Search) di mana hasilnya akan ditampilkan kembali ke halaman List.

Sedangkan server event Recordset_Selecting akan dipanggil di beberapa halaman berikut: List, View, Edit, Delete, dan Update.

Untuk kesekian kalinya lagi, Web Developer sangat dimanjakan oleh PHPMaker untuk menambahkan business-logic tertentu sesuai dengan kebutuhan, sehingga Aplikasi Web yang dihasilkan oleh PHPMaker dapat dibuat dengan sangat cepat, mudah, dan lagi-lagi… menyenangkan! 🙂

Ditempatkan di bawah: PHPMaker Ditag dengan:PHPMaker Indonesia, Recordset_Searching, 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, ilovephpmaker.com, dan phpmakerprojects.com.

Melakukan Aksi Tertentu Sebelum Record Dihapus di Aplikasi Web dari PHPMaker
Mudahnya Memodifikasi Kriteria Pencarian di Aplikasi Web dari PHPMaker

Komentar

  1. Bayu mengatakan

    Jum, 14 Juni 2019 pada 6:23 pm

    Halo Bang Masino,

    Mau nanya.
    Saya punya lookup table.
    Saya mau menyaring lookup tersebut dari Parent field. Tapi ada tambahan kriteria.
    Oleh karena itu, saya tidak pakai Parent filter.

    Page ini bentuknya header dan detail.
    Di page header, saya pilih supplier A.
    Kemudian di page detail, saya harus menyaring tabel master item dengan supplier “A” dan “N/A”

    Saya tambahkan di lookup selecting seperti ini:
    if ($fld->FldName == “material_id”) {
    $sFilter = “supplier = ‘” . Page(“tr_header”)->supplier->CurrentValue . “‘”;
    ew_AddFilter($filter, $sFilter);
    }

    TIdak berhasil.
    Jadi intinya saya mau ambil field Supplier di header.

    Mohon saran Bang. Terima kasih banyak.

    Balas
    • Masino Sinaga mengatakan

      Sab, 15 Juni 2019 pada 2:21 pm

      Tidak berhasilnya seperti apa ya? Apakah ada error yang muncul?

      Balas
      • Bayu mengatakan

        Ming, 16 Juni 2019 pada 11:11 am

        Saya sudah pilih nama Supplier yang berbentuk lookup table di header.
        Di detail, saya klik lookup table untuk pilih Material, “no records found”.
        Secara sintax php ataupun mysql sepertinya benar, tapi value dari CurrentValue tidak ada.

        Balas
        • Masino Sinaga mengatakan

          Ming, 16 Juni 2019 pada 2:12 pm

          Coba ganti kode ini

          $sFilter = "supplier = '" . Page("tr_header")->supplier->CurrentValue . "'";
          

          menjadi:

          $sFilter = "supplier = '" . CurrentPage()->supplier->CurrentValue . "'";
          
          Balas
          • Bayu mengatakan

            Ming, 16 Juni 2019 pada 2:38 pm

            Sudah saya ganti sesuai instruksi, tapi hasilnya “no records found”.
            Sepertinya lookup table di page detail (meski dalam bentuk grid) tidak bisa mengambil value di page header.
            Karena ketika saya ganti pakai fixed value, filter sukses.

            Balas
            • Masino Sinaga mengatakan

              Ming, 16 Juni 2019 pada 7:53 pm

              Coba pakai fitur Dynamic Selection List (baca topik tersebut dari menu Help PHPMaker). Fitur ini mendukung Master/Detail juga.

              Balas
  2. Nanda mengatakan

    Kam, 25 Agustus 2022 pada 10:49 am

    Bang Masino, apakah Server Event ini bisa menghilangkan Karakter saat Pencarian data ?
    jadi misalnya ada Field Nota = nomor_nota.
    Outuput = N-22001.A
    di Database = N22001A

    nah, jika User melakukan input dengan “tanda baca” sesuai Output, maka tidak ketemu datanya,
    bagaimana caranya menghilangkan tanda baca tersebut Saat akan memuat Pencarian .

    atau ada Server Event lain yang bisa digunakan ?

    Balas
    • Masino Sinaga mengatakan

      Jum, 26 Agustus 2022 pada 9:35 pm

      Sepertinya bisa pakai server event Recordset_SearchValidated atau Recordset_Searching.

      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

  • 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
  • Charly pada PHPMaker: PHP Code Generator + PHP Framework
  • Charly 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