属性在PXFormula中获取父字段

时间:2018-02-07 01:12:35

标签: acumatica

我有一个自定义字段我有一个非常简单的Switch内部的PXFormula属性,如果没有ParentAssetID,我想显示FixedAsett的assedCD,如果没有,则显示Parent.AsseCD。

这需要在DAC上,因为它可能用于通用查询和报告等。

以下是我的字段

的属性
[PXInt]
[PXParent(typeof(Select<FixedAsset, Where<FixedAsset.assetID, Equal<Current<FixedAsset.parentAssetID>>>>))]
[PXUIField(DisplayName="ParentAssetID", IsReadOnly = true)]
[PXFormula(typeof(Switch<
    Case<Where<FixedAsset.parentAssetID, Equal<Null>>, FixedAsset.assetCD,
    Case<Where<FixedAsset.parentAssetID, NotEqual<Null>>, Parent<FixedAsset.assetCD>>>>))]

所以第一行工作正常,但当它进入第二种情况时,我得到一个空白。我是否以正确的方式使用家长?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

因为在FixedAsset中 ParentAssetID 字段使用 PXSelector 属性进行修饰,您可以使用选择器运算符,使用更简单的公式来获得所需的结果而不是

public class FixedAssetExt : PXCacheExtension<FixedAsset>
{
    public abstract class parentAssetCD : IBqlField { }

    [PXString]
    [PXUIField(DisplayName = "Parent Asset ID", Enabled = false)]
    [PXFormula(typeof(Switch<
        Case<Where<FixedAsset.parentAssetID, IsNotNull>, Selector<FixedAsset.parentAssetID, FixedAsset.assetCD>>,
        FixedAsset.assetCD>))]
    public string ParentAssetCD { get; set; }
}