Masino Sinaga

Web Development, PHPMaker, & PHP Report Maker

Anda di sini: Beranda / PHPMaker / Menyesuaikan Item Secara Dinamis pada Control Combobox di PHPMaker 2021
Mudahnya Menangani Field Upload yang Tidak Ada Filenya di PHPMaker 2021

Menyesuaikan Item Secara Dinamis pada Control Combobox di PHPMaker 2021

April 3, 2021 oleh Masino Sinaga Tinggalkan Komentar

Tidak percuma memang PHPMaker 2021 menggunakan tagline The Best Gets Even Better, seperti yang ditampilkan pada website resminya: https://phpmaker.dev. Terbuti masih yang terbaik di kelasnya, PHPMaker juga terbukti semakin lebih baik dari versi-versi major sebelumnya.

Salah satu yang semakin baik itu bisa kita rasakan sendiri dari salah satu server event yang bernama Lookup_Selecting. Seperti namanya, server event ini akan dijalankan sebelum membangun SQL untuk memilih record-record dari lookup table.

Artinya, kita sebagai Web Developer masih diberi kesempatan melalui server event Lookup_Selecting ini untuk mengganti filter, supaya item-item yang ditampilkan bisa disesuaikan juga secara dinamis seperti yang kita butuhkan.

Di server event Lookup_Selecting ini, nama field, object Lookup, dan filter untuk lookup dapat ditampilkan dengan kode ini:

var_dump($fld->Name, $fld->Lookup, $filter);

$fld->Lookup adalah sebuah object Lookup. Untuk mengganti SQL lookup, maka kita dapat memodifikasi properties berikut milik object Lookup tadi:

UserSelect, yang merupakan pernyataan SELECT (hanya klausa SELECT dan FROM)
UserFilter, yang merupakan klausa WHERE
UserOrderBy, yang merupakan klausa ORDER BY

Dari menu Help atau Bantuan yang disediakan di aplikasi PHPMaker, kita dapat melihat 5 contoh kode berikut untuk menyesuaikan item-item yang terdapat di dalam field Lookup tersebut.

Di contoh pertama, kita dapat menambahkan filter tambahan ke filter table lookup.

function Lookup_Selecting($fld, &$filter) {
    // var_dump($fld->Name, $fld->Lookup, $filter); // untuk menampilkan nama field, object Lookup, dan filter 
    if ($fld->Name == "MyLookupField")
        $fld->Lookup->UserFilter = "MyField = 'xxx'"; // asumsi: tipe field adalah string
}

Di contoh yang kedua berikut, kita dapat mengganti operator standar dari field yang memiliki filter

function Lookup_Selecting($fld, &$filter) {
    if ($fld->Name == "MyLookupField") {
        $fld->Lookup->UseLookupCache = false; // pastikan dalam hal ini lookup cache dalam posisi non-aktif
        $fld->Lookup->setFilterOperator("FilterField", ">"); // operator baru menjadi tanda ">" (lebih besar)
    }
}

Selanjutnya, pada contoh yang ketiga di bawah ini, kita dapat memodifikasi pernyataan SQL pada bagian SELECT dan ORDER BY:

function Lookup_Selecting($fld, &$filter) {
    if ($fld->Name == "MyLookupField") {
        $fld->Lookup->UserSelect = "SELECT Field1 AS lf, Field2 AS df, Field3 AS df2, '' AS df3, '' AS df4 FROM Table1"; // modifikasi pada bagian SELECT
        $fld->Lookup->UserOrderBy = "Field2 ASC"; // modifikasi pada bagian ORDER BY
    }
}

Kemudian, pada contoh keempat berikut ini, kita dapat mengganti semua item yang terdapat di dalam control Combobox menjadi menggunakan array yang bersifat statis dengan menggunakan method setOptions milik object Lookup:

function Lookup_Selecting($fld, &$filter) {
    if ($fld->Name == "MyLookupField")
        $fld->Lookup->setOptions([
            ["link1", "display1 row1", "display2 row1", "...", ""],
            ["link2", "display1 row2", "display2 row2", "...", ""],
            ["link3", "display1 row3", "display2 row3", "...", ""],
            ["link4", "display1 row4", "display2 row4", "...", ""]
         ]); // gunakan array statis
}

Terakhir, untuk contoh yang kelima berikut, kita dapat menyesuaikan item-item di field Lookup tadi menggunakan data yang dihasilkan oleh fungsi global yang bernama ExecuteRows:

function Lookup_Selecting($fld, &$filter) {
    if ($fld->Name == "MyLookupField")
        $fld->Lookup->setOptions(ExecuteRows("SELECT LinkField, DisplayField1, DisplayField2, DisplayField3, DisplayField4 FROM MyTable")); // gunakan data yang dihasilkan oleh ExecuteRows
}

Penting untuk diketahui, bahwa supaya kode pada contoh kelima ini bisa kita implementasikan, syaratnya adalah dua opsi berikut harus diset dari Fields setup -> panel Edit Tag:

– Use lookup table dalam posisi aktif atau enabled. Artinya, kita harus mengeset Lookup Table untuk field tersebut. Dengan kata lain, kita tidak dapat menyesuaikan item-item pada field Lookup tadi jika kita menggunakan User Values dari bagian Fields tadi.

– Use modal dialog for lookup dalam posisi tidak aktif atau disabled. Artinya, pastikan untuk menonaktifkan opsi ini jika ingin menyesuaikan item-item yang terdapat pada field Lookup tadi secara dinamis.

Dari kelima contoh di atas, maka server event Lookup_Selecting menjadi semakin powerful dan flexible lagi. Terbukti memang, bahwa PHPMaker 2021 adalah yang terbaik, dan semakin lebih baik lagi dari versi-versi major sebelumnya.

Bahkan, code generator lainnya belum ada yang bisa menyamai fleksibilitas dan kemampuan yang sudah disediakan oleh PHPMaker 2021 ini.

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

Mudahnya Menangani Field Upload yang Tidak Ada Filenya di PHPMaker 2021

Tinggalkan Balasan Batalkan balasan

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Pos-pos Terbaru

  • Menyesuaikan Item Secara Dinamis pada Control Combobox di PHPMaker 2021
  • Mudahnya Menangani Field Upload yang Tidak Ada Filenya di PHPMaker 2021
  • Perbedaan Penanganan Current Filter di Tables dan Reports pada PHPMaker 2021
  • Betapa Mudahnya Mengubah Link atau URL Export to PDF dari PHPMaker 2021
  • Nomor Urut Record di Export Data pada PHPMaker 2020 dan PHPMaker 2021

Menu

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

Komentar Terbaru

  • sukirno kasau pada Jangan Pernah Lagi Mencampur Kode PHP di Client Script atau Startup Script pada PHPMaker 2021
  • Masino Sinaga pada Mengenal Lebih Lanjut REST API di PHPMaker 2021
  • Bayu Pratama pada Mengenal Lebih Lanjut REST API di PHPMaker 2021
  • Masino Sinaga pada Mudahnya Menyaring Record Saat Halaman Dimuat di Aplikasi Web dari PHPMaker
  • Charly pada Mudahnya Menyaring Record Saat Halaman Dimuat di 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 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 - 2019 | WordPress | Catat masuk | Kembali ke atas