升级后的自定义用户字段未填充到网格中
Upgraded customization's user fields aren't populating in the grid
我有一个自定义项,可以将用户字段添加到员工考勤卡屏幕 (EP305000) 网格区域,该屏幕已通过多个版本/升级工作 - 但现在在版本 20.102.0015 中无法将数据引入用户字段。
用户字段定义如下:
public class EPTimecardDetailExt : PXCacheExtension<EPTimecardDetail>
{
#region UsrStartDate
public abstract class usrStartDate : IBqlField { }
[PXDBDateAndTime(DisplayNameDate = "Start Date", DisplayNameTime = "Start Time*", UseTimeZone = true)]
//[PXDBTime(DisplayMask = "t", InputMask = "t")]
[PXUIField(DisplayName = "Start Time*")]
public virtual DateTime? UsrStartDate { get; set; }
#endregion
#region UsrEndDate
public abstract class usrEndDate : IBqlField { }
[PXDBDateAndTime(DisplayNameDate = "End Date", DisplayNameTime = "End Time*", UseTimeZone = true)]
//[PXDBTime(DisplayMask = "t", InputMask = "t")]
[PXUIField(DisplayName = "End Time*")]
public virtual DateTime? UsrEndDate { get; set; }
#endregion
#region UsrRelatedCase
public abstract class usrRelatedCase : IBqlField { }
[PXDBString(10)]
[PXUIField(DisplayName = "Related Case*")]
[PXSelector(typeof(Search2<CRCase.caseCD,
InnerJoin<PMProject,
On<CRCase.customerID, Equal<PMProject.customerID>>>,
Where<PMProject.contractID, Equal<Current<EPTimecardDetail.projectID>>>,
OrderBy<Desc<CRCase.caseCD>>>),
typeof(CRCase.caseCD),
typeof(CRCase.subject),
typeof(CRCase.createdDateTime),
typeof(CRCase.caseClassID),
typeof(CRCase.status),
typeof(CRCase.contactID),
typeof(CRCase.ownerID),
DescriptionField = typeof(CRCase.subject))]
//typeof(CRCase.status),
//typeof(CRCase.priority),
//typeof(CRCase.severity),
//typeof(CRCase.caseClassID),
//typeof(BAccount.acctName),
//Filterable = true)]
public virtual string UsrRelatedCase { get; set; }
#endregion
}
这些值在数据库中 - 它们保存正确 - 但它们不会显示在网格中。
知道为什么会这样吗?
此问题的解决方案由 Acumatica 支持人员提供。
在我的定制中,我正在为 'Projection' DAC 创建缓存扩展,即 EPTimeCardDetail。解决方案是创建 DAC 的扩展,它表示用户字段实际添加到的实际 table,即 PMTimeActivity。
一旦我创建了 PMTimeActivity 的缓存扩展,问题就解决了,值显示在网格中。
不知道为什么这在以前的版本中运行良好。
我有一个自定义项,可以将用户字段添加到员工考勤卡屏幕 (EP305000) 网格区域,该屏幕已通过多个版本/升级工作 - 但现在在版本 20.102.0015 中无法将数据引入用户字段。
用户字段定义如下:
public class EPTimecardDetailExt : PXCacheExtension<EPTimecardDetail>
{
#region UsrStartDate
public abstract class usrStartDate : IBqlField { }
[PXDBDateAndTime(DisplayNameDate = "Start Date", DisplayNameTime = "Start Time*", UseTimeZone = true)]
//[PXDBTime(DisplayMask = "t", InputMask = "t")]
[PXUIField(DisplayName = "Start Time*")]
public virtual DateTime? UsrStartDate { get; set; }
#endregion
#region UsrEndDate
public abstract class usrEndDate : IBqlField { }
[PXDBDateAndTime(DisplayNameDate = "End Date", DisplayNameTime = "End Time*", UseTimeZone = true)]
//[PXDBTime(DisplayMask = "t", InputMask = "t")]
[PXUIField(DisplayName = "End Time*")]
public virtual DateTime? UsrEndDate { get; set; }
#endregion
#region UsrRelatedCase
public abstract class usrRelatedCase : IBqlField { }
[PXDBString(10)]
[PXUIField(DisplayName = "Related Case*")]
[PXSelector(typeof(Search2<CRCase.caseCD,
InnerJoin<PMProject,
On<CRCase.customerID, Equal<PMProject.customerID>>>,
Where<PMProject.contractID, Equal<Current<EPTimecardDetail.projectID>>>,
OrderBy<Desc<CRCase.caseCD>>>),
typeof(CRCase.caseCD),
typeof(CRCase.subject),
typeof(CRCase.createdDateTime),
typeof(CRCase.caseClassID),
typeof(CRCase.status),
typeof(CRCase.contactID),
typeof(CRCase.ownerID),
DescriptionField = typeof(CRCase.subject))]
//typeof(CRCase.status),
//typeof(CRCase.priority),
//typeof(CRCase.severity),
//typeof(CRCase.caseClassID),
//typeof(BAccount.acctName),
//Filterable = true)]
public virtual string UsrRelatedCase { get; set; }
#endregion
}
这些值在数据库中 - 它们保存正确 - 但它们不会显示在网格中。 知道为什么会这样吗?
此问题的解决方案由 Acumatica 支持人员提供。
在我的定制中,我正在为 'Projection' DAC 创建缓存扩展,即 EPTimeCardDetail。解决方案是创建 DAC 的扩展,它表示用户字段实际添加到的实际 table,即 PMTimeActivity。
一旦我创建了 PMTimeActivity 的缓存扩展,问题就解决了,值显示在网格中。
不知道为什么这在以前的版本中运行良好。