Selasa, 10 Agustus 2021

Delphi FireDac Tdataset Indexes, IndexDefs, IndexFileDefs

Pengurutan data (Index) yang akan dibahas ada tiga cara yaitu :

  • 👉 Indexes
  • 👉 IndexDefs
  • 👉 IndexFieldNames

✍🏻 Indexes

Pada tutorial ini digunakan TFDMemTable sebagai dataset, yng secara prinsipnya sama dengan TFDQuery. Karena untuk Demo tidak menggunakan Database. kalau mengunakan FDQuery tentu harus menggunakan database sebagai sumber data.
Catatan :
Indexes tidak akan bejalan kalau Indexes.Active dan FDMemTable1.IndexesActive tidak diatur nilainya menjadi True, serta Indexes.Name dan FDMemTable1.IndexName memiliki nilai yang berbeda atau tidak diisi alias kosong.
Untuk membuat pengurutan dari besar ke kecil atur nilai Indexes.Options menjadi [soDescending] dan untuk urut dari kecil kebesar Indexes.Options diatur menjadi []. Dan untuk menghilangkan (tidak menampilkan) Nilai Field yang sama atur Indexes.Distinct menjadi True. Isilah Nilai Indexes.Fields dengan nama field pada dataset yng kan diurutkan, dan jika ingin menfilter data isilah filter sesuai keinginan.

Pengaturan pada saat design Form : pada panel stuctur click TDataset (FDMemTable1) kemudian click kanan indexes llu click add item, selanjutnya isi data sesuai kebutuh di panal Object Inspectorat.
Penatuan saat aplikasi berjalan (Runtime) lihat contoh dibawah 👇

✍🏻 IndexDefs

Sama halya dengan Indexes namun yang diatur bukan FDMemTable1.Indexes namun FDMemTable1.IndexDefs, Indexes boleh memiliki nama yang sama dengn IndexDefs. Untuk mengatur peurutan Ascending atau Descending gunakan

  • :A Untuk pengurutandari kecil kebesar (Ascending)
  • :D Untuk pengurutandari besar kekecil (Descending)
  • :N Untuk penurutan tidak sensitif (tidak membedakan huruf besar atau kecif)
dengan cara penulisan NamaFiledDataset + Titik dua + A/D/N, untuk Ascending juga dapat dikosongkan. untuk pengurun multi Field tambahkan titik koma ";" diantara field. Pengaturan saat design form Click FDMemTable1 pada object inspectorat bisa diisi langsung di IndexDefs namun untuk kehati-hatian click tanda elips kemudian pada daftar pilih dan pindahkan field yang akan diurutkan sesuai tingkat peurutan, kemudian click oke lalu :A/:D/:N sesuai ketentuan penulisan. Nama jangan lupa diisi karena Indexes dan IndexDefs pnentuan mana yang beralan beasarkan IndexName jadi bisa tadak jalan kalau salah.
Pengaturan saat aplikasi berjalan (Runtime) lihat contoh diawah 👇

✍🏻 IndexFieldNames

FDMemTable1.IndexName dengan FDMemTable1.IndexFieldNames akan saling menghpus satu sama lainnya artinya ketika FDMemTable1.IndexFieldNames diisi maka otomatis FDMemTable1.IndexName akan kosong atau sebaliknya. Pengaturan IndexFieldNames sama dengan IndexDefs hanya saa pada IndexFieldNames tidak diperlukan pengaturan nama index. dan secara runtime bis dilihat dibawah 👇

Baca :

Download di sini

Semoga bermanfaat,

FDMemTable, Indexes/Sort, Aggregates, Calculate, Grouping dan Filter

Cara membuat field pasa tabel FDMemTble jika dilakukn saat mendesain aplikasi bisa dengan cara click kanan pada FDMemtable yang berada pada form desain. Kemudian pilih Fields Editor lalu pada form FDMemtable click knan lagi lalu pilih New Field atau tekan Ctrl + N. Pada Field Property isi Name, Type dan size sesuai kebutuhan, pda field Type pilih data lalu Click Ok.

Secara runtime atau pada saat aplikasi berjalan bisa menggunkan cara sperti dibawa :untuk typedta Integer (ftInteger) autonumber (ftAutoInc) nilai size diatur 0, sedangkan untuk typedata String (ftString) tidak boleh 0.
atau dapat juga dengan car dibawah :Selain pengaturan standar seperti contoh diatas Tampilan Caption pada Title Grid (DisplayLabel), format tampilanangka (DisplayFormat), rata kiri, kanan atau tengah (Alignment) danlain sebgainya juga dapat diatur. kalau pengaturan saat design application bisa diatur di Object Inspectorat

Untuk menmbahkan (Append) mengedit (Update) atau menghapus (delete) record pada FDMemtable, FDMemtable harus dalam keadan Active atau Open. Untuk menambah record bisa dengn cara seperti dibawah :atau dengan cara seperti ini :

Baca :

Semoga bermanfaat,

Baru Tayang