是否可以在不使用[PXProcessButton]和委托的情况下在工具栏中显示错误?我已经在acumatica中覆盖了Process Button,但是在执行之前,我有基础代码来检查条件并在发现任何错误时触发错误。
答案 0 :(得分:0)
在没有PXProcessButton
或PXProcessing
数据视图的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();
}
}