Prüfungen durchführen beim/vor dem Schliessen eines Formulares

Möchte/muß man beim bzw. vor dem Schliessen eines Formulares etwas tun, z.B. Prüfungen durchführen, so stellt Dynamics AX dafür einige Methoden zur Verfügung, die in einer bestimmten Reihenfolge abgearbeitet werden. Da ich selbst mir diese Reihenfolge nicht merke, habe ich sie hier kurz notiert.

Beim Schliessen eines Formulares über einen OK-Commandbutton:

  • closeOK
  • canClose
  • close

Beim Schliessen eines Formulares über einen CANCEL-Commandbutton:

  • closeCancel
  • canClose
  • close

Beim Schliessen eines Formulares über "das rote X" bzw. der ESC-Taste:

  • canClose
  • close

 

Bei einer Lookup-Form verhält es sich etwas anders:

Beim Schliessen eines Formulares über einen OK-Commandbutton:

  • closeSelect
  • closeOK
  • canClose
  • close

Beim Schliessen eines Formulares über einen CANCEL-Commandbutton:

  • closeSelect
  • closeOK
  • canClose
  • close

Beim Schliessen eines Formulares über "das rote X" bzw. der ESC-Taste:

  • canClose
  • close

Daraus ergibt sich, daß die optimale Methode für Prüfungen die canClose-Methode ist.

Hier nun noch ein kurzer Job, der ein Formular öffnet und nach dessen Schliessen ermittelt, wie das Formular geschlossen wurde:

static void OpenForm(Args _args)
{
    FormRun form = null;
    Args    formParams = new Args();
    ; 
    formParams.name(formStr(CustTable));
    form = classFactory.formRunClass(formParams);
    form.init();
    form.run();
    form.wait();

    if(form.closed())
    {
        setPrefix("Form was closed.");

        if(form.closedOk())
        {
            info("Form was closed by OK-Button.");
        }
        else if(form.closedCancel())
        {
            info("Form was closed by CANCEL-Button.");
        }
        else
        {
            info("Form was closed by CLOSE-Button.");
        }
    }
}

 

Dieser Beitrag bezieht sich auf die Versionen:
Dynamics AX 2009, Dynamics AX 2012

 
 

 

 
 
 
Beiträge des aktuellen Monats
November 2024
MoDiMiDoFrSaSo
 123
45678910
11121314151617
18192021222324
252627282930 
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu