использование атрибута PXUIEnabled в PXButton - PullRequest
1 голос
/ 11 ноября 2019

Страница: 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(){}

Я хочу отключить кнопку, когда текущий клиентимеет связанный с ним документ.

Если это невозможно, каков наилучший способ / практика выполнения этого во время выполнения

1 Ответ

1 голос
/ 11 ноября 2019

Я бы переопределил событие клиента RowSelected и проверил результаты запроса. Попробуйте, у меня нет ЦАП для проверки.

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