Makro innerhalb eines SELECT-Statements verwenden

Das Beispiel listet beispielsweise nur aktive Stücklistenpositionen (Tabelle BOM) auf (aktiv über die Felder FromDate und ToDate). Lässt man den zweiten Parameter des Makros leer (dateNull()), so werden alle Stücklistenpositionen gelistet.

static void useMacroInSelectStatement(Args _args)
{
    bom bom;
    date emptyDate;
    
    // parameters: %1 = table instance, %2 date, %3 empty date value
    #localmacro.bomDateFilter
        && ( %2 == dateNull() || (
            ((%1.FromDate <= %2) && (%1.ToDate >= %2)) ||
            ((%1.FromDate == %3) && (%1.ToDate == %3)) ||
            ((%1.FromDate <= %2) && (%1.ToDate == %3)) ||
            ((%1.FromDate == %3) && (%1.ToDate >= %2))
            ))
    #endMacro
    ;
    
    while select bom
    where bom.ItemId == '123'
    #bomDateFilter(bom, systemDateGet(), emptyDate)
    {
        info(bom.bomid);
    }
}
Dieser Beitrag bezieht sich auf die Versionen:
Axapta 2.5, Axapta 3.0, Dynamics AX 4.0, Dynamics AX 2009, Dynamics AX 2012

anonymous 26.01.2014 09:13 | #1

Servus Heinz, das geht auch ohne macro, mit (!fromDate || bom.fromDate == fromDate)
lg

Heinz Schweda 14.02.2014 17:37 | #2

@ anonymous
Mir ging es in meinem Beitrag prinzipiell darum, daß man und wie man Makros als Teil eines SELECT-Statements verwenden kann. Wenn jemand mein Code-Beispiel 1:1 verwenden kann, dann wäre das schön, aber wohl reiner Zufall.
Nichts desto trotz vermisse ich in dem Code-Fragment von Dir etwas, derzeit würde es doch nur Datensätze liefern wo entweder kein FromDate oder ein ganz bestimmtes Fromdate eingetragen ist, oder?

Kommentar hinzufügen
 
 
 

 

 
 
 
Beiträge des aktuellen Monats
Juli 2019
MoDiMiDoFrSaSo
1234567
891011121314
15161718192021
22232425262728
293031 
 
© 2006-2019 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