因爲一個系統的須要,須要在日誌中加入自定義的信息,而且須要根據須要過濾顯示其中的部分操做記錄入修改,刪除等,其餘的不顯示,具體的實現方法以下:session
1、須要繼承 AuditDataItemPersistent,具體代碼以下:日誌
public MyAuditDataItemPersistent(DevExpress.Xpo.Session session) : base(session) { } [XafDisplayName("修改標題")] public string PropertyCaption { get { if (AuditedObject != null) { try { var caption = CaptionHelper.GetMemberCaption(AuditedObject.Target.GetType(), PropertyName); return caption; } catch { } } return string.Empty; } } }
2、在WinApplication.cs中設置Audit的存儲對象爲MyAuditDataItemPersistent對象
3、blog
[XafDisplayName("修改日誌")] IList<MyAuditDataItemPersistent>Xt_Order_Review_Detail_Audit { get; } [DomainLogic(typeof(Xt_Order_Review_Detail_Dc))] public class ContactLogic { private static XPCollection<MyAuditDataItemPersistent> _changeHistory; public static IList<MyAuditDataItemPersistent> Get_Xt_Order_Review_Detail_Audit(Xt_Order_Review_Detail_Dc obj, IObjectSpace os) { var source = AuditedObjectWeakReference.GetAuditTrail(((XPObjectSpace)os).Session, obj); if (source != null) { try { _changeHistory = new XPCollection<MyAuditDataItemPersistent>(((XPObjectSpace)os).Session, source); _changeHistory.Filter = CriteriaOperator.Parse("OperationType='ObjectChanged'"); } catch { } } return _changeHistory; //return (MyAuditDataItemPersistent)DevExpress.Persistent.BaseImpl.AuditedObjectWeakReference.GetAuditTrail(((XPObjectSpace)os).Session, obj); }