0

我想寻求帮助,关于YesNoCancel,取消不起作用,他们只工作是和否,少取消

示例:当我按否时,这里效果很好

当我按下取消时,您必须停用减损检查,如图所示,但什么也不做取消。

示例:当我按下取消时,它不起作用。

这是我的代码:

protected virtual void APInvoice_TBienServ_FieldUpdated(PXCache cache,PXFieldUpdatedEventArgs e) 
 {

  APInvoice api = Base.Document.Current;

   XTAPInvoice apiExt = PXCache<APInvoice>.GetExtension<XTAPInvoice>(api);

       if (api.DocType == APDocType.Invoice) 
         {
              switch (this.Base.Document.Ask("", confirma, MessageButtons.YesNoCancel, MessageIcon.Warning))
                     {

                    case WebDialogResult.Yes:
                    apiExt.AutoDetraccion = true;
                    apiExt.Detraccion = false;
                    PXUIFieldAttribute.SetVisible<XTAPInvoice.autodetraccion>(cache, api, true);
                    PXUIFieldAttribute.SetVisible<XTAPInvoice.detraccion>(cache, api, false);
                    break;

                    case WebDialogResult.No:
                    apiExt.Detraccion = true;
                    apiExt.AutoDetraccion = false;
                    PXUIFieldAttribute.SetVisible<XTAPInvoice.detraccion>(cache, api, true);
                    PXUIFieldAttribute.SetVisible<XTAPInvoice.autodetraccion>(cache, api, false);
                    break;
                    //cancel
                    default:
                    apiExt.Detraccion = false;
                    apiExt.AutoDetraccion = false;
                    break;
            }
         }
      }
4

1 回答 1

0

我建议您做更多基本的测试用例来评估 Cancel 不起作用。

您可以在 Acumatica 中打开 Help->Trace / Tools->Trace Window 并将结果直接写入 traces 中。

也许您只想调用默认的取消行为,为此您可以设置 e.Cancel = true。

switch (answer)
{
    case WebDialogResult.Yes:
        PXTrace.WriteInformation("YES");
        break;

    case WebDialogResult.No::
        PXTrace.WriteInformation("NO");
        break;

    case WebDialogResult.Cancel:
        // Cancelling event
        e.Cancel = true;

        PXTrace.WriteInformation("CANCEL");
        break;
    default:
        PXTrace.WriteInformation("DEFAULT");
        break;
}
于 2019-05-03T19:49:11.623 回答