Datenquelle eines Formulares aus einer Klasse heraus aktualisieren

Ich weiß nicht, wie es anderen Entwicklern geht, aber ich habe immer wieder das selbe Thema:

In einem Formular soll eine Schaltfläche eingebunden werden, die einen oder mehrere der gerade angezeigten Datensätze über eine Klasse aktualisiert.

So ein MenuItemButton ist schnell eingebunden, allerdings sorgt dieser in der Regel nicht dafür, daß die angezeigten Daten nach dem Betätigen dieses Buttons (und dem Ausführen der dahinterliegenden Programmlogik) auch aktualisiert werden.

Bisher habe ich mir damit beholfen, in der clicked-Methode des Buttons nach dem super() z.B. datasource.executeQuery() o.ä. aufzurufen. Das sah z.B. so aus:

void clicked()
{
    super();
    
    inventJournalTrans_ds.executeQuery();
}

Eleganter ist die nachstehende Variante, die ich in der main-Methode der Klasse nach dem Aufruf der eigentlichen Aktualisierungsfunktionalität integriert habe

static void main(Args _args)
{
    ...
    // Form refresh
    if (_args.record().dataSource())
    {
       formObjectSet = _args.record().dataSource();
       formObjectSet.research(true);
    }
}

Dieser Code hat den Vorteil, daß man in Zukunft den MenuItemButton einfach nur noch per Drag&Drop ins Formular ziehen muss, und keine weitere Code-Anpassung im Formular selbst notwendig ist.

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

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
Juli 2022
MoDiMiDoFrSaSo
 123
45678910
11121314151617
18192021222324
25262728293031
 
© 2006-2022 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