X++ :26- Extension ile Standart Bir Formun Event Metotlarına kod eklemek.
  1. Anasayfa
  2. Dynamics 365

X++ :26- Extension ile Standart Bir Formun Event Metotlarına kod eklemek.

0

Bu yazıda Visual Studio üzerinden Extension mantığıyla standart bir formun DataSource eventlerine kod nasıl eklenir anlatmaya çalışacağım.

Önceki yazımda smmActivities’e bir alan eklemiştik. Şimdi yine smmActivities dataSource’nun bazı olaylarına kod ekleyelim.
Öncelikle validateDelete koduna eklem yapmak istiyorum. Standart kod böylemiş.

Resim-1

Öncelikle yeni bir sınıf oluşturuyorum daha önce oluşturduğum Extension formunu açıyorum. DataSource’a gelip eventlerden ilgili eventi bulup Copy event handler method diyorum.

Resim-2

Sonra bunları oluşturduğum sınıfa yapıştırıyorum ve aşağıdaki gibi içlerini dolduruyorum.

class FDSmmActivitiesFormEventHandler


{


/// <summary>


///


/// </summary>


/// <param name="sender"></param>


/// <param name="e"></param>


[FormDataSourceEventHandler(formDataSourceStr(smmActivities, smmActivities), FormDataSourceEventType::ValidatingDelete)]


public static void smmActivities_OnValidatingDelete(FormDataSource sender, FormDataSourceEventArgs e)


{


smmActivities smmActivities = sender.cursor(); // Bu sayede aktif kaydı aldım.


if(smmActivities.FDActivityId !="")


{


checkFailed("FDActivityTable Record Exist.");


}


}


/// <summary>


///


/// </summary>


/// <param name="sender"></param>


/// <param name="e"></param>


[FormDataSourceEventHandler(formDataSourceStr(smmActivities, smmActivities), FormDataSourceEventType::Activated)]


public static void smmActivities_OnActivated(FormDataSource sender, FormDataSourceEventArgs e)


{


smmActivities smmActivities = sender.cursor(); // Bu sayede aktif kaydı aldım


FormRun formRun = sender.formRun(); // Form run a ulaştım


FormControl formControl = formRun.design(0).controlName("smmActivities_FDActivityId"); // Herhangi bir form nesnesine bu şekilde ulaşabilirim.


if(smmActivities.Status == smmActivityStatus::Read) // Örnek olsun diye yaptım çok mantıklı bir kontrol değil.


{


formControl.enabled(false);


}


else


{


formControl.enabled(true);


}


}


}

 

Bu yazıda Extension mantığıyla standart bir formun eventlerine nasıl kod eklenir anlatmaya çalıştım. Eski mantığa göre biraz daha zor ve uzun süren bir iş ama getirileri çok büyük. Extension bundan sonra uzun bir süre hayatımızda olacak mantığını kavrayıp bütün işleri bu mantıkla çözmeye çalışmak gerekiyor.

Selamlar.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar:
www.mshowto.org

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Extension, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

2005 yılında Kocaeli Üniversitesi Bilgisayar Mühendisliğinden mezun oldum. Okulda ve ilk iş tecrübelerimde farklı yazılım dilleri kullandım. 2007 yılında Akşam gazetesinde işe başladım ve Microsoft Dynamics 365 (eski adıyla Axapta) ile orda tanıştım. Hiç duymadığım bir dil olan X++ kullanılıyordu. Kısa sürede adapta oldum ve kariyerimi bu alanda şekillendirdim. Bir kaç iş değişikliğinde sonra kendi firmamı kurdum. Şu anda DMR de yönetici ortak ve Çözüm mimarı olarak çalışmaktayım. 2010 yılında MCT oldum. Birçok faklı ortamda eğitimler verdim. Bloğum ve Youtube kanalımda tecrübelerimi paylaşmaktayım.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir