首页 > 解决方案 > 在 PXButton 上使用 PXUIEnabled 属性

问题描述

页码:AR303000 版本:19.200.0081

美好的一天,是否可以将 PXUIEnabled 与 PXButton 一起使用?

    public PXAction<PX.Objects.AR.Customer> DoWork;
    [PXButton(CommitChanges = true)]
    [PXUIField(DisplayName = "Sync From Parent")]
    [PXUIEnabled(typeof(  Where<Shipment_documents.acccd, Equal<Current<Customer.acctCD>>>))]
    protected void doWork(){}

我希望在当前客户有链接到它的文档时禁用该按钮。

如果不可能在运行时完成此任务的最佳方法/实践是什么

标签: acumatica

解决方案


我会覆盖客户的 RowSelected 事件并检查查询结果。试试看,我没有要测试的 DAC。

protected virtual void Customer_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected del)
{
    del?.Invoke(cache, e); //invoke base method first if exists    
    Customer row = (Customer)e.Row;    
    if (row == null)
        return;

    var ShipmentDocuments = PXSelect<Shipment_documents, Where<Shipment_documents.acccd, Equal<Required<Shipment_documents.acccd>>>>.Select(Base, row.AcctCD);
    DoWork.SetEnabled(ShipmentDocuments.Count == 0); //enabled = true when there are no documents
}

推荐阅读