【发布时间】:2021-11-19 21:32:07
【问题描述】:
Acumatica 2021 R1 - 自定义
我正在使用 PXFormula 将数量和成本相乘,以在 Physical Inventory Review 的详细信息中创建一个新的扩展字段(尽管我认为具体的屏幕无关紧要。)这部分工作正常。但是,然后我想将该新列的值汇总到标题中的新扩展字段中。我无法让那部分工作。
这里是相关的详细代码:
using PX.Data;
using System;
namespace PX.Objects.IN
{
public class INPIDetailExt : PXCacheExtension<PX.Objects.IN.INPIDetail>
{
#region UsrExtBookCost
[PXDecimal]
[PXUIField(DisplayName="Ext. Book Cost")]
[PXFormula(typeof(Mult<INPIDetail.bookQty, INPIDetail.unitCost>),
typeof(SumCalc<INPIHeaderExt.usrTotalBookCost>))]
public virtual Decimal? UsrExtBookCost { get; set; }
public abstract class usrExtBookCost : PX.Data.BQL.BqlDecimal.Field<usrExtBookCost> { }
#endregion
}
}
这是标题代码:
using PX.Data;
using System;
namespace PX.Objects.IN
{
public class INPIHeaderExt : PXCacheExtension<PX.Objects.IN.INPIHeader>
{
#region UsrTotalBookCost
[PXDecimal]
[PXUIField(DisplayName="Total Book Cost")]
public virtual Decimal? UsrTotalBookCost { get; set; }
public abstract class usrTotalBookCost : PX.Data.BQL.BqlDecimal.Field<usrTotalBookCost> { }
#endregion
}
}
我觉得这与这些是扩展的事实有关,并且在 INPIDetail 中调用的 PXParent 不知何故没有涵盖这些扩展。
任何建议将不胜感激。
【问题讨论】:
-
其实在 Acumatica 自己的代码中有一条线索。在 INPIDetail 中——查看 PhysicalQty 的代码,PXFormula 的使用被注释掉,注释是手动完成计算......看起来我需要做同样的事情。
-
它可能的 DAC 属性需要更多的工作才能正确刷新数量。对于使用 RowSelecting/RowSelected 的边缘情况不会失败:stackoverflow.com/a/53010150/7376238
-
属性 PXDependsOnFields 可能会帮助和其他解决方案强制公式重新执行。