我有一个自定义字段我有一个非常简单的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>>>>))]
所以第一行工作正常,但当它进入第二种情况时,我得到一个空白。我是否以正确的方式使用家长?
任何帮助都将不胜感激。
答案 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; }
}