Merhaba arkadaşlar,
Bugün sizlere Ax 2012‘ de dialog ta lookupya da modified methodu nasıl override edilir, anlatmaya çalışacağım.
NOT : Class ile dialog nasıl yapılır bilmeyen arkadaşlar, daha önce şu yazımda değinmiş olduğum, class ile dialog yapımına göz atabilirler.
Öncelikle Dialog Clasının dialogPostRun methodunu override edip aşağıda ki kodları yazın.
public void dialogPostRun(DialogRunbase _dialog) { super(_dialog); _dialog.dialogForm(); _dialog.dialogForm().formRun().controlMethodOverload(true); _dialog.dialogForm().formRun().controlMethodOverloadObject(this); _dialog.formRun().controlMethodOverload(true); _dialog.formRun().controlMethodOverloadObject(this); }
Daha sonra aşağıda ki gibi yeni method yazın, adını aynı gördüğünüz gibi yazıp deneyebilirsiniz. Ax dialogta ki fieldları override ederken kendine özel bir isimlendirme yapısı kullanıyor.
Burada Fld1_1_lookup ismi şuradan geliyor; Dialogu çalıştırıp personolize yaptığınızda, görmüş olduğunuz isimdir.
Genelde otomatik olarak Ax ilk Dialogta ki ilk Fieldı Fld1_1 şeklinde isimlendirir.
2.Field istiyorsa Fld2_1 şeklinde devam eder ama en sağlıklısı dialoga personlize yapıp doğru isme bakmaktır, ezbere gitmeyelim 🙂
Lookup methodu için 1.Field’ın override edilmiş hali aşağıda ki gibidir;
public void Fld1_1_lookup() { //todo lookup methodu }
Eğer loookup methodu yerine modified methodunu override etmek isterseniz, aşağıda ki gibi yapabilirsiniz;
public boolean Fld1_1_modified() { FormStringControl ctrl = dialog.formRun().controlCallingMethod(); boolean isFieldModifed = false; isFieldModifed = ctrl.modified(); if(isFieldModifed) { info(strFmt("modified çalıştı: %1", ctrl.valueStr())); } return isFieldModifed; }
Not: dialog değişkenini global olarak tanımlamayı unutmayın 🙂
Pingback: Dynamics Ax – X++ Lookup multiSelect | Semih Çelikol