Dialog Ekranı
Ax 2012 üzerinde dialog ile işlemler yapmak için birden fazla yöntem bulunmaktadır. Bunların en basiti bir metod içerinde dialog alanlarının oluşturup dialog.run() metodunun çalıştırılmasıyla olur. Daha komplike dialog işlemleri için “RunBaseBatch”ten türetilen classlar yapılabilir. (RunBaseBatch in asıl amacı arka tarafta bir batch(toplu iş) işlemi çalıştırmak için kullanır. Ancak Ax 2012 de kullanılırlığı azalmıştır RunBaseBatch yerine Ax 2012 ile gelen SysOperation Framework classları kullanır. Bu iki yönetemede ilerki konularda bahsetmeye çalışacağız.)
Aşağıdaki örnekte örnek bir Job ile dialog nasıl çalıştırılır göstereceğiz. Bu işlemi bir butonun click methoduna yazarakta butonun tıklandığında ekrana dialog çıkarma işlemini yapabilirsiniz.
static void Erkn_DialogOrnek(Args _args) { Dialog dialog; dialogfield dfCustAccount; dialogfield dfLineNum; dialogfield dfIsActive; dialogfield dfTransDate; CustAccount custAcc; int lineNum; boolean isActivce; TransDate transDate; dialog = new dialog("Örnek Dialog"); //dialogDeğişkeni = dialog.addField(extendedTypeStr("Extended Data Type yazılır),"Etiket yazılır(Label)"); dfCustAccount = dialog.addField(extendedTypeStr(CustAccount),"Müşteri"); dfLineNum = dialog.addField(extendedTypeStr(integer),"Sıra No"); dfIsActive = dialog.addField(extendedTypeStr(NoYesId),"Aktif"); dfTransDate = dialog.addField(extendedTypeStr(TransDate),"İşlem Tarihi"); //DialogDeğişkeni.Value("Varsayılan değer"); dfTransDate.value(systemDateGet()); //Varsayılan değer atamak için kullanılır dfIsActive.value(NoYes::Yes); //dfIsActive.active(false); //active metodu alanı pasif hale getirerek müdahaleye kapatır. if(dialog.run()) { //Dialogdan gelen değerleri tutmak için aşağıdaki değişkenler kullanılır custAcc = dfCustAccount.value(); lineNum = dfLineNum.value(); isActivce = dfIsActive.value(); transDate = dfTransDate.value(); } }
Dialogdan dönen değerleri tutmak için kullanılan değişkenleri formda “classDeclarationa” tanımlarsanız gelen değerleri formun her yerinde kullanabilirsiniz.