2007-09-06

Penggunaan Fungsi Agregat pada Object Query

Manfaat yg bisa didapat:

  • Dapat memanfaatkan Object Query yg sudah ada sehingga tidak perlu membuat object Query yg baru yang isinya fungsi agregat.
  • Tidak perlu membuat perintah SQL yang baru yang maksud dan fungsinya sama dengan Object Query yang dimaksud.
  • Akan sangat bermanfaat bila Object Query-nya merupakan join dari beberapa table.
Contoh AOT Job...
static void myJob(Args _args)
{
     Query q;
     QueryRun qr;QueryBuildDataSource qbd;
     QueryBuildFieldList qfl;
     EmplTable ep;
     int i;
     ;

     qr = new QueryRun(queryStr(EmployeeList));
     //'EmployeeList' merupakan contoh Object Query dari AOT
     q = qr.query();
     qbd = q.dataSourceTable(tablenum(EmplTable));
     qfl = qbd.fields();
     /*
     Command berikut untuk menambahkan fungsi agregat pada query.
     Fungsi Agregat : Count, Max, Min, Avg, Sum.
     Fungsi Count sebaiknya di asign pada RecId sebab RecId merupakan Int64, sisanya(fungsi) disesuaikan dengan fieldnya masing2.
     */
     qfl.addField(fieldnum(empltable,RecId),SelectionField::Count);
     qr.next();
     ep = qr.get(tablenum(empltable));
     info(strfmt("%1",ep.RecId)); //Akan menampilkan Jumlah Row...
     qfl.clearFieldList();
     qr.reset();
     i = 0;
     while(qr.next())//Akan menampilkan semua Employee ID sesuai dengan query
     {
          i++;
          ep = qr.get(tablenum(empltable));
          info(strfmt("%1 - %2",i,ep.EmplId));
     }
}