屏幕上出现多个错误

时间:2019-01-16 07:27:28

标签: acumatica

是否可以在不使用[PXProcessButton]和委托的情况下在工具栏中显示错误?我已经在acumatica中覆盖了Process Button,但是在执行之前,我有基础代码来检查条件并在发现任何错误时触发错误。

1 个答案:

答案 0 :(得分:0)

在没有PXProcessButtonPXProcessing数据视图的PXFilteredProcessing的情况下,并没有很多有效的方案。我希望在没有PXButton数据视图而不是PXProcessing的情况下使用PXProcessButton

在过程屏幕中使用PXProcessing视图,您将执行以下操作:

PXProcessing<DAC>.SetError(new PXException("Test));

据我所知,没有一种方法可以直接在工具栏中设置错误。您会注意到,这些错误与PXLongOperation有关。在主工具栏中,您将看到长时间操作的沙漏图标,并且可以将其更改为成功或错误图标。

处理操作不仅可以执行此操作,而且还可以保存操作。除非您需要进行长时间的操作,否则我建议避免在主工具栏中显示错误,因为这不是基本Acumatica产品中的行为。

也就是说,您可以通过在PXException事件处理程序内的PXLongOperation内抛出PXAction来在几乎所有位置复制该功能,如下所示:

  public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
  {
    public PXAction<SOOrder> test;

    [PXUIField(DisplayName = "Test")]
    [PXButton]
    protected virtual IEnumerable Test(PXAdapter adapter)
    {
      PXLongOperation.StartOperation(Base, delegate {
        throw new PXException("Test");
      });

      return adapter.Get();
    }
  }

enter image description here