Quantcast
Channel: Microsoft Dynamics AX Forum - Recent Threads
Viewing all articles
Browse latest Browse all 175888

RE: Execute Query

$
0
0

First of all, let me format your code so we can at least read it:

public void executeQuery()
{
    TECPOGroupHeader_ds.query().dataSourceTable(tableNum(TECPOGroupHeader)).clearRanges();

    if(statusFilter.valueStr() == enum2str(TEC_AllDraftPosted::Draft))
    {
        TECPOGroupHeader_ds.query().dataSourceTable(tableNum(TECPOGroupHeader)).addRange(fieldnum(TECPOGroupHeader,Status)).value(sysquery::value(TECPOGroupStatus::Draft));
    }

    if(statusFilter.valueStr() == enum2str(TEC_AllDraftPosted::Posted))
    {
        TECPOGroupHeader_ds.query().dataSourceTable(tableNum(TECPOGroupHeader)).addRange(fieldnum(TECPOGroupHeader,Status)).value(sysquery::value(TECPOGroupStatus::Posted));
    }

    //add by fanddy
    if(statusFilter.valueStr() == enum2str(TEC_AllDraftPosted::Confirmed))
    {
        TECPOGroupHeader_ds.query().dataSourceTable(tableNum(TECPOGroupHeader)).addRange(fieldnum(TECPOGroupHeader,Status)).value(sysquery::value(TECPOGroupStatus::Confirmed));
    }
    //END add by fanddy

    if(CreatorFilter.value() == true)
    {
        TECPOGroupHeader_ds.query().dataSourceTable(tableNum(TECPOGroupHeader)).addRange(fieldnum(TECPOGroupHeader,CreatedBy)).value(sysquery::value(curUserId()));
    }

    super();
}

After simplifying it, it seems you want something like this (possibly with an extra condition for adding the range for Status):

public void executeQuery()
{
    QueryBuildDataSource headerDs = TECPOGroupHeader_ds.queryBuildDataSource();

    headerDs.clearRanges();
    headerDs.addRange(fieldnum(TECPOGroupHeader, Status)).value(queryValue(statusFilter.selection()));

    if (CreatorFilter.value())
    {
        headerDs.addRange(fieldnum(TECPOGroupHeader, CreatedBy)).value(queryValue(curUserId()));
    }
}


This still has nothin to do with AX; it's how you should write it even in previous versions.

Now please explain what problem you have with AX 7. Form datasources still have executeMethod() and all the legacy code still works.


Viewing all articles
Browse latest Browse all 175888

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>