如何解决如何在投影字段上设置默认值?
我有一个如下定义的投影 DAC。我在 InventoryItemmaint
的视图中使用此 DAC。我需要我的投影 DAC 的 InventoryID
字段默认为当前项目的 ID,但我尝试的任何内容都不起作用。
有什么特别的方法可以做到这一点吗?
我试过了:
-
PXDBDefault
与PXParent
PXDefault(typeof(InventoryItem.inventoryID))]
-
PXFormula
(如下所示)
[PXProjection(typeof(SelectFrom<MXFormulaClass>.InnerJoin<MXFormulaClassNutrients>.
On<MXFormulaClassNutrients.classID.IsEqual<MXFormulaClass.classID>>.
LeftJoin<MxnutrientValue>.
On<MxnutrientValue.nutrientID.IsEqual<MXFormulaClassNutrients.nutrientID>>),Persistent = true)]
[PXCacheName("MXItemNutrientValues")]
public class MXItemNutrientValues : IBqlTable
{
#region ClassID
[PXDBInt(IsKey = true,BqlField = typeof(MXFormulaClassNutrients.classID))]
[PXUIField(displayName = "Class ID")]
public virtual int? ClassID { get; set; }
public abstract class classID : PX.Data.BQL.BqlInt.Field<classID> { }
#endregion
#region NutrientID
[PXDBInt(IsKey = true,BqlField = typeof(MXFormulaClassNutrients.nutrientID))]
[PXExtraKey]
[PXDBDefault(typeof(MXFormulaClassNutrients.nutrientID))]
[PXSelector(typeof(Mxnutrient.nutrientID),typeof(Mxnutrient.nutrientCD),typeof(Mxnutrient.description),SubstituteKey = typeof(Mxnutrient.nutrientCD),DescriptionField = typeof(Mxnutrient.description))]
[PXUIField(displayName = "Nutrient")]
public virtual int? NutrientID { get; set; }
public abstract class nutrientID : PX.Data.BQL.BqlInt.Field<nutrientID> { }
#endregion
#region MinMax
[PXDBInt(IsKey = true,BqlField = typeof(MXFormulaClassNutrients.minMax))]
[PXIntList(new int[] { 1,2 },new string[] { "Min","Max" })]
[PXUIField(displayName = "Min/Max")]
public virtual int? MinMax { get; set; }
public abstract class minMax : PX.Data.BQL.BqlInt.Field<minMax> { }
#endregion
#region SortOrder
[PXDBInt(BqlField = typeof(MXFormulaClassNutrients.sortOrder))]
[PXUIField(displayName = "Sort Order")]
public virtual int? SortOrder { get; set; }
public abstract class sortOrder : PX.Data.BQL.BqlInt.Field<sortOrder> { }
#endregion
#region InventoryID
[PXDBInt(IsKey = true,BqlField = typeof(MxnutrientValue.inventoryID))]
[PXFormula(typeof(Where<InventoryItem.inventoryID,Equal<Current<InventoryItem.inventoryID>>>))]
[PXUIField(displayName = "Inventory ID")]
public virtual int? InventoryID { get; set; }
public abstract class inventoryID : PX.Data.BQL.BqlInt.Field<inventoryID> { }
#endregion
#region Value
[PXDBDecimal(BqlField = typeof(MxnutrientValue.value))]
[PXUIField(displayName = "Value")]
public virtual Decimal? Value { get; set; }
public abstract class value : PX.Data.BQL.BqlDecimal.Field<value> { }
#endregion
#region CreatedByID
[PXDBCreatedByID(BqlField = typeof(MxnutrientValue.createdByID))]
public virtual Guid? CreatedByID { get; set; }
public abstract class createdByID : PX.Data.BQL.BqlGuid.Field<createdByID> { }
#endregion
#region CreatedByScreenID
[PXDBCreatedByScreenID(BqlField = typeof(MxnutrientValue.createdByScreenID))]
public virtual string CreatedByScreenID { get; set; }
public abstract class createdByScreenID : PX.Data.BQL.BqlString.Field<createdByScreenID> { }
#endregion
#region CreatedDateTime
[PXDBCreatedDateTime(BqlField = typeof(MxnutrientValue.createdDateTime))]
public virtual DateTime? CreatedDateTime { get; set; }
public abstract class createdDateTime : PX.Data.BQL.BqlDateTime.Field<createdDateTime> { }
#endregion
#region LastModifiedByID
[PXDBLastModifiedByID(BqlField = typeof(MxnutrientValue.lastModifiedByID))]
public virtual Guid? LastModifiedByID { get; set; }
public abstract class lastModifiedByID : PX.Data.BQL.BqlGuid.Field<lastModifiedByID> { }
#endregion
#region LastModifiedByScreenID
[PXDBLastModifiedByScreenID(BqlField = typeof(MxnutrientValue.lastModifiedByScreenID))]
public virtual string LastModifiedByScreenID { get; set; }
public abstract class lastModifiedByScreenID : PX.Data.BQL.BqlString.Field<lastModifiedByScreenID> { }
#endregion
#region LastModifiedDateTime
[PXDBLastModifiedDateTime(BqlField = typeof(MxnutrientValue.lastModifiedDateTime))]
public virtual DateTime? LastModifiedDateTime { get; set; }
public abstract class lastModifiedDateTime : PX.Data.BQL.BqlDateTime.Field<lastModifiedDateTime> { }
#endregion
#region Tstamp
[PXDBTimestamp(BqlField = typeof(MxnutrientValue.tstamp))]
public virtual byte[] Tstamp { get; set; }
public abstract class tstamp : PX.Data.BQL.BqlByteArray.Field<tstamp> { }
#endregion
#region Noteid
[PXNote(BqlField = typeof(MxnutrientValue.noteid))]
public virtual Guid? Noteid { get; set; }
public abstract class noteid : PX.Data.BQL.BqlGuid.Field<noteid> { }
#endregion
}
解决方法
您是否将视图链接到 InventoryMaint 图扩展中视图定义中缓存的 Current 属性?类似的东西
public PXSelect<MXItemNutrientValues,Where<MXItemNutrientValues.inventoryid,Equal<Current<InventoryItem.inventoryID>>> customView;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。