Saturday, January 11, 2014

Cara Membuat Query Range untuk Field Tipe Tanggal

Untuk mem-filter query dengan tipe tanggal di Microsoft Dynamics AX 2012 dapat menggunakan class SysQueryRangeUtil::day(int)

Contoh:

static void jobs1(Args _args)
{
                 Query query = new Query();
                 QueryBuildDataSource qbds;
                 QueryBuildRange qbr;
                 ;
                 qbds = query.addDataSource(tableNum(LedgerJournalTrans));
                 qbr = qbds.addRange(fieldNum(LedgerJournalTrans, TransDate));
                 qbr.value('<'+queryValue(SysQueryRangeUtil::day(-50));
                 ..
                 ..
                 ..
}



Query diatas akan menghasilkan data yang difilter berdasarkan column TransDate, dimana TransDate kurang dari 50 hari lalu dari tanggal system. Apabila nilai n yang dimasukkan positif, maka data yang ditampilkan adalah data dengan tanggal n hari kedepan dari tanggal system.

Juga terdapat method dayRange(int nAwal, int nAkhir) yang memungkinkan kita untuk mem-filter data dengan interval hari nAwal dan nAkhir

Contoh 1:

        int iFrom = dateFrom - systemDateGet();
        int iTo = dateTo - systemDateGet();
        ..
        ..
        qbr.value(SysQueryRangeUtil::dayRange(iFrom, iTo));

Contoh 1.1: - AND

        ;
        ..
        ..
        qbrFrom.value(sysquery::range(_fromDate, dateNull()));
        qbrTo.value(sysquery::range(dateNull(), _toDate));

Contoh 2: - OR

        ;
        ..
        ..
        qbrFrom.value(sysquery::range(dateNull(), _fromDate));
        qbrTo.value(sysquery::range(_toDate, dateNull()));

No comments:

Post a Comment