Veri Filtreleme
CTRL+F
Geçerli alanı filtrelemek için kullanılır. Ekran açılır. Hangi alan üzerine tıklandı ise o alan için filtreleme kutusu açılır.
ALT + F3
Örneğin fatura hesabının üzerindeyken ALT + F3’e bastığınızda, otomatik olarak aşağıdaki gibi listeleme yapar.
CTRL + F3
Sorgulama ekranı açılır ve kompleks filtreler yapılabilir.
ALT + F9
Bir kaydı siler.
CTRL + F5
Degisiklikleri iptal eder, etkin kaydı geri yükler.
CTRL + Yukarı ok
İmlecin bulunduğu sütunun filtre alanına gider.
CTRL + Shift + F3
Tüm filtreleri temizler.
Arama kutularında yapılabilen sorgular;
- Yalnızca bir kayıt değil de bir kayıt aralığı filtrelenmek isteniyorsa, aynı arama kutusuna sırayla, arama aralığının ilk kaydı, iki nokta ve arama aralığının son kaydı yazılır.
Örneğin 01.01.2018..05.01.2018 bu iki tarih arasındaki kayıtlar listelenir.
Diğer örnek;
01.01.2018..05.01.2018, !02.01.2018..04.01.2018 01.01.2015 ile 05.01.2018 tarihlerinde 02.01.2018, 04.01.2018 tarihleri arasında kalanlar gelmesin şeklinde listelenir.
- Aranacak kaydın sadece birkaç karakteri biliniyorsa, arama kutusuna sırasıyla, bilinen karakterler ve ardından, AX’da joker karakter olarak kullanılan yıldız (*)karakteri yazılır.
Örneğin, müşteriler tablosunda “Müşteri hesabı” 30 ile başlayan kayıtları filtrelemek için ; 30*
30 ile bitenleri filtrelemek için *30
İçerisinde 30 geçenler için *30*
- Verilen değerden farklı olan kayıtları aramak için de “Ünlem”(!) karakteri kullanılır.
Örneğin müşteriler tablosunda “Para Birimi” alanının değeri “EUR” değerinden farklı olanları filtrelemek için !EUR
- Aranacak alanda x karakter uzunluğundaki kayıtların listelenmesini istiyorsanız;
Örneğin, filtre alanına 1?? yazarsanız, 1 ile başlayan 3 haneli kayıtları listeler.
Doküman için tıklayın.
Daha geniş filtrelemeleri görmek için tıklayın.
Doküman 2 için tıklayın.
27 Şubat 2018 Salı
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.
Butonun click'ıne hesaplama yapacağımız methodu çağırıyoruz.
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.
14 Şubat 2018 Çarşamba
Satış siparişi içerisine kontrol ekleme | Dynamics Ax
Örnek olarak yurtiçi satış siparişlerinde Nakliye bedeli zorunlu olsun fakat yurt dışı siparişlerinde olmasın diye bir kontrol ekleyecek olursak aşağıdaki kodu DataSource'un içindeki SalesLine'ın write'ına ekleyebilirsiniz.
Kontrolleri satış siparişinin içerisindeki Havuz alanın ve müşterilerin içerisindeki Müşteri gruplarında bulunan ihracat alanın durumuna göre yapıldı. İhracat tikli ise yurtdışı siparişi değilse yurtiçi siparişidir.
if((SalesPool::find(SalesTable.SalesPoolId).ihracat == NoYes::No || CustGroup::find(SalesTable.CustGroup).EtgExImpIsExport == NoYes::No) && (!SalesLine.ETGFreightPaymMode)) // MAA 14.02.2018 { throw error ("@ETG448"); } }
Kontrolleri satış siparişinin içerisindeki Havuz alanın ve müşterilerin içerisindeki Müşteri gruplarında bulunan ihracat alanın durumuna göre yapıldı. İhracat tikli ise yurtdışı siparişi değilse yurtiçi siparişidir.
13 Şubat 2018 Salı
Formda bir buton yardımıyla istenilen alanlarda güncelleme yapma | Dynamics Ax
void clicked() { switch (Box::okCancel(strfmt("'%1, %2 %3' sevk edilebilir olarak işaretlenecek!\n\nEmin misiniz?", SalesLine.itemName(), SalesLine.SalesQty, SalesLine.SalesUnit), DialogButton::Cancel)) { case DialogButton::Ok: ttsbegin; SalesLine.DrtCanBeDelivered = NoYes::Yes; SalesLine.ReceiptDateConfirmed = systemdateget();// Sistemden bugünün tarihini alır SalesLine.doUpdate(); if (SalesLine.ReceiptDateConfirmed > SalesLine.ShippingDateRequested) // MAA 13.02.2018 { SalesLine.ShippingDateRequested = datenull(); warning ("Talep edilen sevk tarihi Teyit edilen giriş tarihinden önce olamaz!"); SalesLine.doUpdate(); } ttscommit; SalesLine_DS.research(); break; } //super(); } }
12 Şubat 2018 Pazartesi
İki alanın tek alanda gösterilmesi(Display)
Kaydol:
Kayıtlar (Atom)
Total ciro
static void MAA_SalesTableTotal(Args _args) { SalesTable SalesTable; utcDateTime dateTime; dateTime ...
-
Dynamics Ax Microsoft’un orta ve büyük ölçekli işletmelerin ihtiyaçlarını karşılamak için tasarladığı temel iş çözümüdür. Veritabanı yöne...
-
Veri Filtreleme CTRL+F Geçerli alanı filtrelemek için kullanılır. Ekran açılır. Hangi alan üzerine tıklandı ise o alan için filtreleme k...