Temporäre Tabelle sortieren?

31. August 2016 16:22

Hallo zusammen,

als blutigen Anfänger hat man mich jetzt auf AX2009 losgelassen mit dem Auftrag einen Report auf Basis der Tabelle InventTrans zu erstellen. Er soll zu auswählbaren Artikelnummern darstellen, wieviel davon aufgesplittet nach Jahr und Monat verkauft wurden.
Nach langem Suchen hab ich eine Möglichkeit gefunden, eine temporäre Tabelle zu erstellen, in welcher dann das entsprechende Datum aus InventTrans in Jahr und Monat dargestellt wird. Diese kann ich auch dem Report als Datenquelle zur Verfügung stellen und in der Fetch-Methode mit temp-Daten befüllen und im Bericht anzeigen lassen. Soweit bin ich schon mal stolz auf mich :lol:
Wenn ich aber jetzt im AOT eine Spalte ( zb die Itemid ) auf Order By ziehe und dann den Report erstellen lassen möchte, bekomme ich die Meldung, dass in einer temporären Tabelle nur entweder Group by ODER Order By erlaubt wäre, aber nicht beides.

Hab ich da irgendeine Chance irgendwie eine Sortierung hinzubekommen?


Meine Fetch-Methode sieht so aus:
Code:
public boolean fetch()
{

    boolean ret = true;
    QueryRun localQuery = new QueryRun(this);
    ;

    localQuery.setRecord(this.populateRecords());

    while (localQuery.next())
    {
        InventTransTemp_1 = localQuery.get(TableNum(IN_InventTransTemp));
        element.send(InventTransTemp_1);
    }
    return ret;
}


und hier lade ich die Daten:
Code:
IN_InventTransTemp populateRecords()
{
    InventTransTemp         tmpTable;
    InventTrans             baseTable;
    ;

    while select baseTable
    where baseTable.StatusIssue == StatusIssue::Sold
    && baseTable.TransType == InventTransType::Sales
    && baseTable.DateFinancial>this.startDatum() && baseTable.DateFinancial<this.endDate()
    {
        tmpTable.ItemId = baseTable.ItemId;
        tmpTable.StatusIssue = baseTable.StatusIssue;
        tmpTable.Qty = baseTable.Qty;
        tmpTable.TransType = baseTable.TransType;
        tmpTable.Monat = this.getMonthString(baseTable.DateFinancial);
        tmpTable.Jahr = this.getYearString(baseTable.DateFinancial);
        tmpTable.doInsert();
    }
    return tmpTable;
}


Vielen Dank schon mal für jeden Hinweis
Andreas