Beispiel für einen Datumsfilter einer FormDataSource

Im folgenden ein Beispiel, wie man bei einer FormDataSource einen QueryBuildRange aufbaut, welcher nur tagesaktuelle Datensätze anzeigt.

Im Beispiel enthält unsere FormDataSource namens DataSourceName zwei Datumsfelder namens FromDate und ToDate und es sollen abhängig von einer Checkbox nur Datensätze angezeigt werden, die "heute" gültig sind.

public void applyFilter()
{
    queryBuildRange qbr;

    qbr = sysQuery::findOrCreateRange(DataSourceName_ds.queryBuildDataSource(), fieldNum(DataSourceName, recId));

    if( !ShowExpiredCheckBox.checked())
    {
        qbr.value(strfmt('('+
                         '((%5.%2 <= %1) && (%5.%3 >= %1)) || ' +
                         '((%5.%2 == %4) && (%5.%3 == %4)) || ' +
                         '((%5.%2 <= %1) && (%5.%3 == %4)) || ' +
                         '((%5.%3 >= %1) && (%5.%2 == %4)) ' +
                         ')',
                                Date2StrXpp(systemDateGet()),
                                fieldstr(DataSourceName, FromDate),
                                fieldstr(DataSourceName, ToDate),
                                Date2StrXpp(dateNull()),
                                tableId2name(tableNum(DataSourceName))));
    }
    else
    {
        qbr.value(SysQuery::valueUnlimited());
    }
}

Der Aufruf obiger Methode kann beispielsweise in der executeQuery() der Datasource erfolgen.

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

 
 

 

 
 
 
Beiträge des aktuellen Monats
Juni 2025
MoDiMiDoFrSaSo
 1
2345678
9101112131415
16171819202122
23242526272829
30 
 
© 2006-2025 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