Skip to main content
Question

Add field to projection

  • June 17, 2023
  • 0 replies
  • 215 views

Forum|alt.badge.img+1

In the PX.Objects.EP.TimeCardMaint class I would like to add additional fields to the ‘EPTimecardDetail’ DAC. I created a new DAC Projection inheriting from EPTimecardDetail, this seems to work well. My issue is in trying to replace the Activities data view in TimeCardMaint with my extension.

I thought PXSubstitute might work but it does not.

 

 [Serializable]
[PXCacheName("EP Timecard Task")]
[PXSubstitute(GraphType = typeof(TimeCardMaint), ParentType = typeof(EPTimecardDetail))]
[PXProjection(typeof(Select2<PMTimeActivity, LeftJoin<CRActivity, On<CRActivity.noteID, Equal<refNoteID>>, LeftJoin<CRCase, On<CRCase.noteID, Equal<CRActivity.refNoteID>>, LeftJoin<ContractEx, On<ContractEx.contractID, Equal<CRCase.contractID>>, LeftJoin<PMProject, On<PMProject.contractID, Equal<PMTimeActivity.projectID>>>>>>>), new Type[] { typeof(CRActivity) })]
public partial class EPTimecardTaskExt : EPTimecardDetail
{

[PXDBGuid(true, IsKey = true, BqlField = typeof(CRActivity.noteID))]
[PXExtraKey]
public Guid? CRActivityNoteID { get; set; }
public abstract class cRActivityNoteID : BqlType<IBqlGuid, Guid>.Field<cRActivityNoteID> { }


[PXDefault]
[EPDBDateAndTime(typeof(ownerID), WithoutDisplayNames = true, BqlField = typeof(CRActivity.startDate))]
[PXUIField(DisplayName = "Start Date")]
public virtual DateTime? StartDate { get; set; }
public abstract class startDate : BqlType<IBqlDateTime, DateTime>.Field<startDate> { }


[PXDefault]
[EPDBDateAndTime(typeof(ownerID), WithoutDisplayNames = true, BqlField = typeof(CRActivity.endDate))]
[PXUIField(DisplayName = "End Time")]
public virtual DateTime? EndDate { get; set; }
public abstract class endDate : BqlType<IBqlDateTime, DateTime>.Field<endDate> { }


[PXDBString(2, IsFixed = true, BqlField = typeof(CRActivity.uistatus))]
[ActivityStatus]
[PXUIField(DisplayName = "Status")]
[PXDefault("OP", PersistingCheck = PXPersistingCheck.Nothing)]
public virtual string UIStatus { get; set; }
public abstract class uIStatus : BqlType<IBqlString, string>.Field<uIStatus> { }

}