Add Group By Field in Code Using X++

AX 2012 Example of Adding Grouping on DataSource fields using X++:


***********************************************************************************
element.inventDimSetupObject().modifyQueryWithBatch(inventSum_DS,inventDim_DS,inventBatch_ds);

***********************************************************************************

X++ Code:

/// <summary>
/// Adds grouping and summing fields for the data sources specified.
/// </summary>
/// <param name="_inventSum_DS">
/// The data source for the <c>InventSum</c> table.
/// </param>
/// <param name="_inventDim_DS">
/// The data source for the <c>InventDim</c> table.
/// </param>
/// <param name="_inventBatch_DS">
/// The data source for the <c>InventBatch</c> table.
/// </param>
public void modifyQueryWithBatch(
    FormDataSource _inventSum_DS,
    FormDataSource _inventDim_DS,
    FormDataSource _inventBatch_DS)
{
    Query                   query        = _inventDim_DS.query();
    QueryBuildDataSource    qbsBatch;
    QueryBuildRange         criteriaItemId;

    if (!callingElement || !callingElement.args())
    {
        return;
    }

    this.modifyQuery(_inventSum_DS, _inventDim_DS);

    qbsBatch = query.dataSourceName(_inventBatch_DS.name());

    qbsBatch.addGroupByField(fieldNum(InventBatch, ItemId));
    qbsBatch.addGroupByField(fieldNum(InventBatch, InventBatchId));
    qbsBatch.addGroupByField(fieldNum(InventBatch, ProdDate));

    qbsBatch.addGroupByField(fieldNum(InventBatch, PdsBestBeforeDate));
    qbsBatch.addGroupByField(fieldNum(InventBatch, PdsShelfAdviceDate));
    qbsBatch.addGroupByField(fieldNum(InventBatch, ExpDate));

    qbsBatch.addGroupByField(fieldNum(InventBatch, PdsDispositionCode));

    if (query.orderByFieldCount() == 0)
    {
        criteriaItemId = qbsBatch.findRange(fieldNum(InventBatch, ItemId));
        if (!criteriaItemId || criteriaItemId.value() == '')
        {
            // If no other sorting then add some default sorting
            qbsBatch.addOrderByField(fieldNum(InventBatch,ItemId));
        }
    }
}

Comments

Popular posts from this blog

D365: SSRS Report Development/ Customization

D365: X++ code to add custom lookup on worker to show specific workers team workers only

Error message when you log on to a Microsoft Dynamics AX 4.0 client: "You are not a recognized user of Microsoft Dynamics AX"