Dynamics Ax – X++ Lookup multiSelect

20 Ara

Merhaba arkadaşlar,
Bugün sizlere dialogta ya da formda nasıl çoklu seçim yaparız, anlatmaya çalışacağım.

Bildiğiniz gibi normalde standart bir lookupta sadece bir tane değer seçebiliyorsunuz.

lookupOneSelect

Çoklu seçim yapabilmek için ise, lookup methodunuzu override edip, aşağıdaki kodu kullanmanız yeterli olacaktır.

Bu kod ile lookubınız grid olarak açılacak ve çoklu seçime imkan sağlayacak.

//todo variable container conCustTable
SysLookupMultiSelectGrid::lookup(query,_control,_control,conCustTable);

Çoklu seçim yapılabilen bir lookup örneği;

lookupMultiSelect

Yukarıda verdiğim method direkt olarak ilgili queryi alır ve tablodaki tüm alanları gridtte gösterir. Ancak siz sadece belirli alanlar gelsin istiyorsanız o zaman queryinizin datasourcuna aşağıdaki gibi field ekleme yaparak, sadece belli alanların gelmesi sağlayabilirsiniz.

//add field
queryBuildDataSource.addSelectionField(fieldNum(Table,Field));

Seçilen değerleri alıp kullanabilmeniz için en temiz yöntem aşağıda ki gibidir;

//todo değişken olarak SysLookupMultiSelectGrid msAttributes; tanımlanmalı;
//todo değişken olarak container connAttributesValues; tanımlanmalı;

//FormControl = Form üzerinde ki fieldlarınızdır, AutoDeclaration yes yapıp, direkt ismini göndermeniz gerekmektedir.
msAttributes = SysLookupMultiSelectGrid::construct(FormControl, FormControl);
msAttributes.parmQuery(query);
msAttributes.run();

connAttributesValues = msAttributesValues.getSelected();

ÖNEMLİ NOT : Containerda tutulan değerler,Ana Queryinizde ki Tablonun RecId’sidir.

Bir Cevap Yazın