Acumatica 在PXButton上使用PXUIEnabled属性

Acumatica 在PXButton上使用PXUIEnabled属性,acumatica,Acumatica,页码: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_docum

页码: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(){}
public-PXAction-dowwork;
[PXButton(CommitChanges=true)]
[PXUIField(DisplayName=“从父级同步”)]
[PXUIEnabled(typeof(Where))]
受保护的void doWork(){}
当当前客户有文档链接到该按钮时,我希望该按钮禁用


如果不可能,在运行时实现这一点的最佳方法/实践是什么

我将覆盖客户的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
}
protected virtual void Customer\u row选中(PXCache缓存、PXRowSelectedEventArgs e、PXRowSelected del)
{
del?.Invoke(cache,e);//如果存在,首先调用基本方法
客户行=(客户)e行;
if(行==null)
返回;
var ShipmentDocuments=PXSelect.Select(Base,row.actcd);
DoWork.SetEnabled(ShipmentDocuments.Count==0);//当没有文档时enabled=true
}