如何在Acumatica中汇总多个字段(pxformula)

时间:2017-02-07 10:46:06

标签: acumatica

我知道pxformula可以做到,但是pxformula只接受两个参数参数。如何添加(求和)同一个DAC的多个字段?我能窝吗?

感谢。一些工作实例将不胜感激,其他一些方法也将受到赞赏。

2 个答案:

答案 0 :(得分:0)

如果您在PXFormula上进行代码搜索,您应该找到很多示例。如果您有权访问本地站点,我通常会搜索您的站点/ App_data / CpdeRepository目录中的代码。

如果您要执行多字段计算,可以嵌套Add,Sub,Mult,Div等调用。

以下是我搜索“PXFormula”或“Mult<”的一些例子。或“添加<”:

在ARTranRUTROT.CuryRUTROTTotal中找到,此示例将从curyDiscAmt中删除curyExtPrice并添加curyRUTROTTaxAmountDeductible(除非null使用零)

[PXFormula(typeof(Add<Sub<ARTran.curyExtPrice, ARTran.curyDiscAmt>,
    IsNull<curyRUTROTTaxAmountDeductible, decimal0>>))]

在GLTaxTran.CuryExpenseAmt中找到。此示例再次使用计算中的多个字段全部嵌套。

[PXFormula(typeof(Mult<Mult<GLTaxTran.curyTaxableAmt, 
    Div<GLTaxTran.taxRate, decimal100>>, Sub<decimal1,
    Div<GLTaxTran.nonDeductibleTaxRate, decimal100>>>), null)]

答案 1 :(得分:0)

如另一个答案所示,PXFormula可用于执行多字段计算。但是,PXFormula始终将计算值分配给它所装饰的字段。

如果您不需要在任何字段中存储计算值,PXUnboundFormulaAttribute可能是更好的方法:

[PXUnboundFormulaAttribute(typeof(Switch<Case<Where<GLTranDoc.debitAccountID, IsNotNull>, GLTranDoc.curyTranTotal>, Sub<GLTranDoc.curyTaxAmt, GLTranDoc.curyInclTaxAmt>>), 
    typeof(SumCalc<GLDocBatch.curyDebitTotal>))]

有关PXUnboundFormulaAttribute的其他示例,请在Acumatica UniversityAcumatica Open University

的T200开发人员课程指南中查看示例7.3:添加聚合值的条件计算