【问题标题】:Custom selector challenges自定义选择器挑战
【发布时间】:2016-06-15 19:49:49
【问题描述】:

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

我实施的解决方案如上一个案例所示: Dynamically changing PXSelector in Acumatica(谢谢)。

我的挑战是双重的:

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

2.) 如果选择了其中一个选择器(比如项目),我希望选择以下选择器(比如任务)来根据所选项目进行过滤。

非常感谢...

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    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;
        }
    }
    

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

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

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

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

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

    【讨论】:

    • 谢谢德米特里。这有帮助。
    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    相关资源
    最近更新 更多