QueryRun pada Ax

Objek QueryRun digunakan untuk mengambil sejumlah record pada tabel didalam database sesuai dengan constraint dari tabel-tabel yang telah diberikan tersebut. Objek ini paling cocok digunakan didalam Report untuk menampilkan sejumlah data yang diinginkan.

Ini adalah contoh penggunaannya :

static void example()
{    
QueryRun qr = new QueryRun ("Mahasiswa");
Mahasiswa mhsRecord;
while (qr.next())
{
//Get the fetched record.
mhsRecord = qr.GetNo(1);
print mhsRecord.NIM;
}
}

Type data “container” pada Ax.

Salah satu tipe data di Ax yang menurut saya cukup flexible adalah container. Dari namanya sudah jelas fungsinya. Tipe data ini dapat menampung beberapa data sekaligus dengan tipe yang berbeda-beda dan dinamis. Sedikit berbeda dengan Array ataupun List. Untuk menambah data kedalam container bisa menggunakan conins dan untuk mengambil data dari container bisa mengunakan conpeek

Menulis ke file word dengan menggunakan makro File pada Ax

Ini contoh codingnya :

static void writeWord(Args _args)
{
    #File
    AsciiIO     fileOut;
    container _fileFilter = ["Document Files","*.doc"];
    str fileName;
    CustTable custTable;
    int i;
    ;
    fileName = WinAPI::getSaveFileName(0,_fileFilter," ","Specify Save File Name", "", "");
    fileOut = new AsciiIO(fileName,#io_write);

    fileOut.write("No \tCust Account \tStatus Customer \tBlocked");
    while select custTable
    {
        if(i < 20)
        {
            i++;
            fileOut.write(strfmt('%1 \t%2 \t%3 \t%4',i,custTable.AccountNum,custTable.DI_StatusCustomer,custTable.Blocked));
        }
    }
    WinAPI::shellExecute(fileName);
}

Lagi cape tulis jadi dipahami sendiri aja ya … 🙂

Menampilkan data pada Ax dengan SysTableLookup

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.