X++ Coming Out Of QueryRun In Fetch Method

Posted by will on Stack Overflow See other posts from Stack Overflow or by will
Published on 2012-04-10T15:17:10Z Indexed on 2012/04/10 17:29 UTC
Read the original article Hit count: 403

Filed under:
|
|
|

I can't seem to find the resolution for this. I have modified the Fetch method in a report, so that if the queryRun is changed, and the new ID is fetched, then the while loop starts over and a new page appears and 2 elements are executed. This part works fine, the next part does not, in each ID there are several Records which I am using Element.Execute(); and element.Send(); to process. What happens is, the first ID is selected, the element (body) of the reports is executed and the element is sent as expected, however the while loop does not go onto the next ID?

Here is the code;

public boolean fetch()
{
    APMPriorityId           oldVanId, newVanId;
    LogisticsControlTable   lLogisticsControlTable;
    int64                   cnt, counter;
    ;

    queryRun = new QueryRun(this);

    if (!queryRun.prompt() || !element.prompt())
    {
        return false;
    }

    while (queryRun.next())
    {
        if (queryRun.changed(tableNum(LogisticsControlTable)))
        {
            lLogisticsControlTable = queryRun.get(tableNum(LogisticsControlTable));
            if (lLogisticsControlTable)
            {
                info(lLogisticsControlTable.APMPriorityId);
                cnt      = 0;
                oldVanId =  newVanId;
                newVanId =  lLogisticsControlTable.APMPriorityId;

                if(newVanId)
                {
                    element.newPage();
                    element.execute(1);
                    element.execute(2);
                }
            }

            if (lLogisticsControlTable.APMPriorityId)

            select count(recId) from lLogisticsControlTable where lLogisticsControlTable.APMPriorityId == newVanId;
            counter = lLogisticsControlTable.RecId;

            while select lLogisticsControlTable where lLogisticsControlTable.APMPriorityId == newVanId
            {
                cnt++;

                if(lLogisticsControlTable.APMPriorityId == newVanId && cnt <= counter)
                {
                    element.execute(3);
                    element.send(lLogisticsControlTable);
                }
            }
        }
    }
    return true;
}

© Stack Overflow or respective owner

Related posts about reporting

Related posts about axapta