【发布时间】:2016-06-27 14:26:56
【问题描述】:
在一些帮助和大量试验和错误的帮助下,我能够创建一个允许以下内容的自定义:
- 销售订单汇总区域中的“总利润”字段
- “销售订单”汇总区域中的“GP %”字段
- 销售订单详细信息区域中的“总利润”字段(按行)
- 销售订单详细信息区域中的“GP %”字段(按行)
总利润 = 分机。价格 - 分机。成本 GP % = (总利润/外部价格) * 100
这四个字段的计算有时会起作用,但我注意到当我通过输入新行或使用 Control + Enter 提交该行时,然后返回并更改 Ext.成本、总利润和 GP% 不会更新。即使我保存并刷新它也会这样做。唯一一次似乎 100% 工作是当我以非常有条理地一步一步输入它时。但这不是计算开箱即用总数的方式。您在数量、价格等中输入的订单无关紧要 - 开箱即用的总数始终会更新。如何在 Acumatica 中制作这样的四个自定义字段?
SOLine 自定义字段(每个字段以空行分隔):
[PXDBCurrency(typeof(SOLine.curyInfoID), typeof(SOLineExt.usrTotalProfit))]
[PXUIField(DisplayName = "Total Profit", Enabled = false)]
[PXFormula(typeof(Sub<SOLine.curyLineAmt, SOLine.curyExtCost>))]
[PXDefault(TypeCode.Decimal, "0.0")]
[PXFormula(null, typeof(SumCalc<SOOrderExt.usrCuryOrderTotalProfit>))]
[PXDBDecimal(4)]
[PXDefault(TypeCode.Decimal, "0.0")]
[PXFormula(typeof(Switch<Case<Where<SOLine.curyLineAmt, Equal<decimal0>>, decimal0>, Div<SOLineExt.usrTotalProfit, SOLine.curyLineAmt>>))]
[PXDefault(TypeCode.Decimal, "0.0")]
[PXUIField(DisplayName = "GP %", Enabled = false)]
[PXFormula(typeof(Mult<SOLineExt.usrGPPercent, decimal100>))]
[PXDefault(TypeCode.Decimal, "0.0")]
SOOrder 自定义字段(每个字段以空行分隔):
[PXDBCurrency(typeof(SOOrder.curyInfoID), typeof(SOOrderExt.usrOrderTotalProfit))]
[PXUIField(DisplayName = "Total Profit", Enabled = false)]
[PXDefault(TypeCode.Decimal, "0.0")]
[PXDBDecimal(4)]
[PXDefault(TypeCode.Decimal, "0.0")]
[PXFormula(typeof(Switch<Case<Where<SOOrder.curyOrderTotal, Equal<decimal0>>, decimal0>, Div<SOOrderExt.usrOrderTotalProfit, SOOrder.curyOrderTotal>>))]
[PXDefault(TypeCode.Decimal, "0.0")]
[PXUIField(DisplayName = "GP %", Enabled = false)]
[PXFormula(typeof(Mult<SOOrderExt.usrOrderGPPercent, decimal100>))]
【问题讨论】:
-
你能提供你的解决方案的源代码吗?包括您使用的所有自定义 DAC 字段和属性。
-
Gabriel - 我更新了我原来的帖子。如果您还需要什么,请告诉我!
-
如果您的公司有支持订阅,我建议您为 Acumatica 支持创建一个案例。这可以显着加快问题的解决速度。