WebDialogResult YesNoCancel - PullRequest
       14

WebDialogResult YesNoCancel

0 голосов
/ 03 мая 2019

Я хочу попросить о помощи, о 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;
            }
         }
      }

1 Ответ

0 голосов
/ 03 мая 2019

Я бы посоветовал вам сделать более простые тестовые случаи, чтобы оценить, что Cancel не работает.

Вы можете открыть окно Справка-> Трассировка / Инструменты-> Трассировка в Acumatica и записать результат непосредственно в трассировку.

Возможно, вы просто хотите вызвать поведение отмены по умолчанию, для этого вы можете установить 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;
}
...