自定义选择器挑战

Custom selector challenges

我有一个带有多个自定义 select 的自定义屏幕,它们会根据下拉列表 select 更改内容。

我实现的方案如上一个案例所示: (谢谢)。

我的挑战是双重的:

1.) 如果下拉列表 selection 是 "No Lookup",那么我希望基本上删除 PXSelector 属性 - 只留下一个文本条目。不确定这是否可能...

2.) 如果 select 之一(比方说项目)是 selected,我想要以下 selection select或(比如说任务)根据项目进行筛选 selected.

非常感谢...

1) 我认为唯一的方法是创建自己的属性。

类似的东西:

public class PXSelectorTextEditAttribute : PXSelectorAttribute
{
    bool selectorMode;
    public PXSelectorTextEditAttribute(Type type, bool selectorOn):base(type)
    { 
         selectorMode = selectorOn; 
    }
    public override void FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
    {
        if(selectorMode)
        base.FieldVerifying(sender, e);
    }

    public static void SwitchSelectorMode(PXSelectorTextEditAttribute attribute, bool onOff)
    {
        attribute.selectorMode = onOff;
    }
}

您将能够打开和关闭属性的 'selector' 部分。关闭字段验证后,您将能够像在简单的 TextEdit 字段中一样将任何值放入该字段。但是,字段右端的查找按钮仍然可见。我不知道如何隐藏它。

2) 这种行为很容易实现。您将需要类似的东西(基于现金帐户的示例):

[PXSelector(typeof(Search<CABankTran.tranID, Where<CABankTran.cashAccountID, Equal<Current<Filter.cashAccountID>>>>))]

如果您想在未定义 cashaccount 时查看所有记录,则只需修改 where 子句,添加 Or<Current<Filter.cashAccountID>, isNull>

另外不要忘记将 AutoRefresh="true" 添加到 aspx.xml 文件中的 PXSelector。没有它,您的选择器将保留记录列表,直到您在其中按下刷新。