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