Markierte Datensätze eines Formulares verarbeiten/iterieren

Um in Dynamics AX die markierten Datensätze einer Formular-Datenquelle (FormDataSource) zu verarbeiten/iterieren kann folgendes Code-Beispiel helfen:

void markSelected()
{
    inventTrans inventTransSelected;
    inventTrans inventTrans4Update;

    ttsbegin;
    inventTrans4Update.setTmpData(inventTrans);    //DIES IST NUR BEI TEMPORÄREN TABELLEN NOTWEDNIG
    for (inventTransSelected = inventTrans_ds.getFirst(true) ? inventTrans_ds.getFirst(true) : inventTrans_ds.cursor();
         inventTransSelected;
         inventTransSelected = inventTrans_ds.getnext())
    {
        select firstonly forUpdate inventTrans4Update
        where inventTrans4Update.RecId == inventTransSelected.RecId;

        inventTrans4Update.Marked = NoYes::Yes;
        inventTrans4Update.update();
    }
    ttscommit;

    inventTrans_ds.executeQuery();
}

Im Beispiel werden die markierten Datensätze der Tabelle InventTrans durchlaufen und ein Feld Marked auf TRUE aktualisiert.

In Dynamics AX 2012 kann übrigens statt dessen auch die Klasse MultiSelectionHelper dafür verwendet werden.

void markSelected()
{
    MultiSelectionHelper = MultiSelectionHelper::construct();
    MultiSelectionHelper.parmDatasource(inventTrans_ds);

    InventTransSelected = MultiSelectionHelper.getFirst();
    while(InventTransSelected)
    {
         // ...do something...
       
        InventTransSelected = MultiSelectionHelper.getNext();
    }
}

Mir ist allerdings mehrmals aufgefallen, daß nicht in allen Fällen beide Varianten zum selben Ergebnis führen - weshalb das so ist, weiß ich derzeit leider nicht. Hier hilft nur ausprobieren!

Außderdem muss man darauf achten, daß in Dynamics AX 2012 die neue Eigenschaft AutoRefreshData eines Buttons bei Verwendungen des oben beschriebenen Codes deaktiviert sein sollte. Mit aktivierter Eigenschaft funktionieren beide nicht!

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

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
April 2024
MoDiMiDoFrSaSo
1234567
891011121314
15161718192021
22232425262728
2930 
 
© 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