How long have you been using Microsoft Dynamics Ax?

Toplam Sayfa Görüntüleme Sayısı

Popular Posts

Translate

Bu Blogda Ara

9 Şubat 2012 Perşembe

Eldeki ekranına madde adı ekleme

Stok yönetimi -> Sorgulamalar -> Eldeki ekranı üzerinde madde kodu yanına madde adı kolonu yer almakta.

Kullanıcılar madde kodundan ziyade madde adına aşina olduğundan madde adına göre filtreleme yapmak isteyebilirler.

Madde ad alanı display alan olduğundan bu alan üzerinde mevcut halde filtreleme yapılamamaktadır.

Normal durumlarda formun veri kaynağına ilgili tabloyu ekler ve ilişkisini belirttikten sonra display methodda görüntülenen alanımız hangisi ise tablodan sürükle bırak ile forma kopyalar filtrelemeyi aktif kılabiliriz.

Ancak Eldeki ekranında işler biraz daha farklı yürüyor.

Ekran birden fazla yerden tetiklenebilen ve dinamik içerikli bir form olduğundan ilişki ve filtreleme işlemlerini sınıflar üzerinde yapmakta bizim değişiklik yapacağımız sınıfın adı InventDimCtrl_Frm_OnHand methodumuzun adı modifyQuery olacak böylelikle formun veri kaynağında kurulacak olan ilişkilere direkt müdahele edebileceğiz.

sonrasında bu methodu çağıran form üzerindeki veri kaynağındaki executeQuery methoduna parametre ekleyeceğiz.

ilişkinin AX tarafından algılanabilmesi için Form Datasource a InventTable ekle ve adını ItemTable olarak yeniden adlandırıyoruz çünkü InventTable adı kod içerisinde daha önceden kullanılmış ve InventSum ile joinSource olarak ata

InventSum tablosuna InventTable releation ekliyoruz ItemId üzerinden 


(c)InventDimCtrl_Frm_OnHand

void modifyQuery(
    FormDataSource inventSum_DS,
    FormDataSource inventDim_DS,
    FormDataSource inventTable_DS
    )
.
.
.
QueryBuildDataSource    qbsInvent;
;
if (qbsInvent != null)
{
qbsInvent = inventTable_DS.query().dataSourceName(inventTable_DS.name());
qbsInvent.orderMode(OrderMode::GroupBy);
     qbsInvent.addSortField(fieldnum(InventTable,ItemName));
}
.
.
.

Sınıfı ileri doğru derlediğimizde modifyQuery i fazla yükleme ile kullanan sınıflara 
FormDataSource inventTable_DS parametresini ekliyoruz.


(f) InventOnhandItem
InventSum -> executeQuery()
element.inventDimSetupObject().modifyQuery(inventSum_DS,inventDim_DS,itemTable_DS);



Bol AX'lı günler,
Alper.

Hiç yorum yok:

Yorum Gönder