22 Şubat 2018 Perşembe

Örnek Dynamics Ax Projesi | İki tarih arasındaki kayıtları bulup hesaplama yaptırma

Girilen iki tarih arasındaki(Sevk tarihi seçtim siz başka bir tarih seçebilirsiniz) satış siparişlerini süzüp siparişin içerisindeki istenilen alanda hesapla yaptırarak kontrol edebileceğiniz bir örnek üzerine çalışma yaptım.

DRT Sales adında verilerin hesaplanıp ekleneceği bir tablo oluşturdum. Sonrasında hangi alanları istiyorsam bu formda görmek istiyorsak onu ekleyelim.


Daha sonraformun design'ine gelip filter için kullanacağımız tarih alanları ve buton ekleyelim.


Butonun click'ıne hesaplama yapacağımız methodu çağırıyoruz.

void clicked()
{
     delete_from DRTSales where DRTSales.UserId ==curuserid();

     element.CalcSales();
}
Çağırdığımız bu method oluşturduğumuz formun methods kısmında yer alacak.

Butonun click'ıne hesaplama yapacağımız methodu çağırıyoruz.
void CalcSales()
{
    Query                       q;
    QueryBuildDataSource        qbdsSalesLine;
    QueryBuildDataSource        qbdsSalesTable;
    QueryRun                    queryRun;

    SalesLine       salesLine;
    SalesTable      salesTable;
    DrtSales        DrtSls;
    InventTable     inventTable;
    ;

    q = new Query();

    qbdsSalesLine  = q.addDataSource(tablenum(SalesLine));
    qbdsSalesLine.addRange(fieldNum(SalesLine, ShippingDateRequested)).value(SysQuery::range(StartDate.dateValue(), EndDate.dateValue()));
    qbdsSalesLine.addRange(fieldNum(SalesTable, SalesId)).value('SS*');
    qbdsSalesLine.addRange(fieldNum(SalesTable, SalesStatus)).value(SysQuery::value(SalesStatus::Backorder));
    SalesLine.SalesId = SalesTable.SalesId;

    queryRun  = new QueryRun(q);
    while (queryRun.next())
    {
        salesLine            = queryRun.get(tablenum(SalesLine));
        inventTable          = InventTable::find(SalesLine.ItemId);
        {
            DrtSls.clear();
            DrtSls.SalesId     = salesLine.SalesId;
            DrtSls.SalesStatus = salesLine.SalesStatus;
            DrtSls.SalesPrice  = salesLine.SalesPrice;
            DrtSls.SalesQty    = salesLine.SalesQty;
            DrtSls.ItemId      = salesLine.ItemId;
            DrtSls.TransDate   = salesLine.ShippingDateRequested;
            DrtSls.standardPalletQuantity = (SalesLine.SalesQty) * (inventtable::find(salesline.ItemId).NetWeight) ; // siparişin toplam ağırlığını hesaplar
            DrtSls.Qty         = salesLine.SalesQty *  salesLine.SalesPrice;
            DrtSls.UserId           =  curuserid();

            DrtSls.insert();
        }
    }

    DrtSales_DS.research();
    info("Hesaplandı...");
}
Siz istediğiniz ilişkili bir tablodan alanı elinize alıp hesaplama ya da formda gözükmesini sağlayabilirsiniz. Projeyi indirmek için tıklayın.

Hiç yorum yok:

Yorum Gönder

Total ciro

static void MAA_SalesTableTotal(Args _args) { SalesTable SalesTable; utcDateTime dateTime; dateTime ...