Dynamics Ax – Lookup Form

26 Oca

Merhaba arkadaşlar,
Bugün sizlere lookup Form nedir, nasıl yapılır anlatmaya çalışacağım.

Lookup Form Nedir ?

Ax’ta ki bildiğimiz form’dur. Formun görüntüsü lookup olacak şekilde ayarlaması yapılır. Fielda tıklandığında bu form açılır ancak lookup özellikli olduğu için form olduğu anlaşılmaz ve istenilen alanlar lookupta listelenir.

Benim kullanma sebebim, lookuplarda gösterilen display alanlarda filtreleme yapılmamasıydı. Bu tür durumlarda lookup form kullanabilirsiniz.

Lookup Form Nasıl Yapılır ?

Step by step diyorum:

İLK OLARAK, LOOKUP FORMU YAPIYORUZ.

1- Göstermek istediğiniz alanları yeni bir form yapıp gridte listeleyin. Formda sadece datasource ve grid olsun.
* Formun dizayn özelliklerini şu şekilde ayarlayın:
– Width : Column width
– Style : Lookup

2- Lookup’ta seçilecek hangi değeri almak istiyorsanız. Formunuzun gridinde o field’ın Auto Declaration: Yes yapın.

3- Formun methodlarına aşağıda ki methodu kendinize göre ayarlayıp ekleyin:

protected void configureCustomerLookUp(FormStringControl stringControl)
{
   if (stringControl)
   {
      stringControl.visible(true);
      stringControl.registerOverrideMethod(
      methodStr(FormStringControl, lookup),
      identifierStr(CustomerLookUp), this);
   }
}

4- Formun init methodunu override edip şunu ekleyin;

//Auto Declaration:Yes yaptığımız, form controlümüzün adı.
element.selectMode(VendTable_AccountNum);

Lookup formu yaptıysak, şimdi açma işlemlerine geçelim.

Lookup Formu açma işlemleri

1- Lookup formu hangi form controlünde gösterieceksek o formda, ilgili obje özelliklerini aşağıda ki gibi ayarlayın:
Auto declartion : Yes
Lookup Button : Always

2- Datasource’ta ilgili formun controlünü bulup, lookup methodunu override ediyoruz:

public void lookup(FormControl _formControl, str _filterStr)
{
    //super(_formControl, _filterStr);
    FormStringControl formStringControl = _formControl;

    Args        args;
    Object      formRun;
    ;

    args = new args(formStr(OBSLookupVendTable));

    formRun = classfactory.formRunClass(args);
    formRun.init();

    formStringControl.performFormLookup(formRun);

}

İşlemler bu kadar. Umarım yardımcı olmuşumdur.

İyi çalışmalar.

Bir Cevap Yazın