Page History
...
Burada override edilen metodlar kaldırılmalı. Logo CRM de kullanıcı ve rolleri ile ilgili işlemler yapıldığı için burada yapılması hataya sebep olacaktır.
8. Adım : Controller Eklenmesi
XAF Template Gallery kullanılarak XAF Controller dan View Controller Seçilir.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
using System; using System.Collections.Generic; using System.Linq; using System.Text; using DevExpress.Data.Filtering; using DevExpress.ExpressApp; using DevExpress.ExpressApp.Actions; using DevExpress.ExpressApp.Editors; using DevExpress.ExpressApp.Layout; using DevExpress.ExpressApp.Model.NodeGenerators; using DevExpress.ExpressApp.SystemModule; using DevExpress.ExpressApp.Templates; using DevExpress.ExpressApp.Utils; using DevExpress.Persistent.Base; using DevExpress.Persistent.Validation; using Solution10.Module.BusinessObjects; using logocrm.net.Module.BusinessObjects; namespace Solution10.Module.Controllers { public partial class Sample_Controller : ViewController { private static bool subs = false; public Sample_Controller() { InitializeComponent(); } protected override void OnActivated() { //Hedefe bağlı olarak çeşitli görevleri gerçekleştirir. base.OnActivated(); if (!subs) { ObjectSpace.ObjectChanged += ObjectSpace_ObjectChanged; subs = true; } } private void ObjectSpace_ObjectChanged(object sender, ObjectChangedEventArgs e) { if (e.PropertyName == "Firma") { BO_Sample sample = ((BO_Sample)View.CurrentObject); if (e.NewValue != null) { sample.Name = ((MT_Firm)e.NewValue).FirmTitle + "_"; } else { sample.Name = ""; } } } protected override void OnViewControlsCreated() { // Hedef Görünüm kontrolüne erişir ve özelleştirir. base.OnViewControlsCreated(); } protected override void OnDeactivated() { // Önceden abone olunan etkinliklerden çıkar ve diğer referansları ve kaynakları serbest bırakır. if (subs) { ObjectSpace.ObjectChanged -= ObjectSpace_ObjectChanged; subs = false; } base.OnDeactivated(); } } } |
9. Adım : Business Object setter Getter
Set/Get ve ImmediatePostData eklentilerileri yapılır. Controller ve İş nesneleri bütünüyle sunucuda yönetilir.
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
using System; using System.Linq; using System.Text; using DevExpress.Xpo; using DevExpress.ExpressApp; using System.ComponentModel; using DevExpress.ExpressApp.DC; using DevExpress.Data.Filtering; using DevExpress.Persistent.Base; using System.Collections.Generic; using DevExpress.ExpressApp.Model; using DevExpress.Persistent.BaseImpl; using DevExpress.Persistent.Validation; using logocrm.net.Module.BusinessObjects; namespace Solution10.Module.BusinessObjects { [DefaultClassOptions] //[ImageName("BO_Contact")] //[DefaultProperty("DisplayMemberNameForLookupEditorsOfThisType")] //[DefaultListViewOptions(MasterDetailMode.ListViewOnly, false, NewItemRowPosition.None)] //[Persistent("DatabaseTableName")] // Specify more UI options using a declarative approach (https://documentation.devexpress.com/#eXpressAppFramework/CustomDocument112701). public class BO_Sample : BaseObject { // Inherit from a different class to provide a custom primary key, concurrency and deletion behavior, etc. (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument113146.aspx). private string name; private MT_Firm firma; public BO_Sample(Session session) : base(session) { } public string Name { get => name; set => name = value; } [ImmediatePostData] public MT_Firm Firma { get { return firma; } set { SetPropertyValue("Firma", ref firma, value); } } public override void AfterConstruction() { base.AfterConstruction(); // Place your initialization code here (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument112834.aspx). } //private string _PersistentProperty; //[XafDisplayName("My display name"), ToolTip("My hint message")] //[ModelDefault("EditMask", "(000)-00"), Index(0), VisibleInListView(false)] //[Persistent("DatabaseColumnName"), RuleRequiredField(DefaultContexts.Save)] //public string PersistentProperty { // get { return _PersistentProperty; } // set { SetPropertyValue("PersistentProperty", ref _PersistentProperty, value); } //} //[Action(Caption = "My UI Action", ConfirmationMessage = "Are you sure?", ImageName = "Attention", AutoCommit = true)] //public void ActionMethod() { // // Trigger a custom business logic for the current record in the UI (https://documentation.devexpress.com/eXpressAppFramework/CustomDocument112619.aspx). // this.PersistentProperty = "Paid"; //} } } |
10. Adım : Otomatik Deploy Tanımı
Sadece proje.Module çıktısı kullanılacaktır. Üretilen dll elle ya da aşağıdaki gibi otomatik olarak hedef dizine kopyalabilir.
...