Berikut ini saya mau menulis mengenai pengalaman yang saya dapat untuk menampilkan data pada tabel tertentu dengan kriteria tertentu menggunakan Kelas SysTableLookup:
Asumsi saya mempunyai tabel :
1. VendTable dengan field : AccountNum,Name dan VendGroup.
2. ParameterUmum dengan field : VendGroupId dan Description.
Kasus :
Tampilakan data AccountName dan Name yang VendGroup terdaftar atau ada didalam ParameterUmum.
Penyelesaian :
public void lookupVendor(FormControl control)
{
Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
SysTableLookup sysTableLookup;
;
sysTableLookup = SysTableLookup::newParameters(tablenum(VendTable), control);
sysTableLookup.addLookupfield(fieldnum(VendTable, AccountNum), true);
sysTableLookup.addLookupfield(fieldnum(VendTable, Name), false);
queryBuildDataSource = query.addDataSource(tablenum(VendTable));
queryBuildRange = queryBuildDataSource.addRange(fieldnum(VendTable, VendGroup));
queryBuildRange.value(ParameterUmum::find().VendorGroupId);
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
Fungsi newParameters pada objek sysTableLookup digunakan untuk menandakan kalo akan dilakukan lookup ke tabel VendTable. Sedangkan fungsi addLookupField digunakan untuk mengambil kolom yang diinginkan. Setelah dilakukan langkah menentukan tabel dan kolom yang mau dilookup maka selanjutnya gunakan kelas QueryBuildDataSource. Sesuai dari namanya maka kelas ini untuk menangani DataSource. Setelah itu kita buat range untuk memfilter data. Kemudian eksekusi fungsi performFormLookup untuk melakukan lookup berdasarkan langkah-langkah sebelumnya.
Terima Kasih.