显示方法 - 多个表单数据源

时间:2012-07-12 13:28:37

标签: dynamics-ax-2009 x++ axapta

这似乎是一个简单的问题,但出于某种原因,我很烦恼。

我有一个包含3个数据源的表单 - InventTableInventSumInventDim

因此,例如,我的网格显示;

项目,名称,地点,仓库,实物库存​​

我在InventDim表单DataSource上放置了一个显示方法,但我需要访问ItemIdinventTrans中的InventSum。 (显然正在寻找“当前”项目ID)。

我可以访问的只是inventDim,它作为参数_inventDim作为标准传递。

访问“当前”itemId的最佳方法是什么?

1 个答案:

答案 0 :(得分:8)

好的,我找到了答案,非常感谢Joris de Gruyter的这篇文章;

http://daxmusings.blogspot.co.uk/2011/10/forum-advanced-display-method-querying.html

关键是将显示方法放在InventSum数据源上。

然后,您可以使用_inventSum.joinChild()来检索链接的inventDim,这是Joris的示例;

display Qty AvailPhysical(InventSum _inventSum)
{
    InventDim       joinDim, dimValues;
    InventDimParm   dimParm;
    InventSum       localSum;

    //THE IMPORTANT LINE...
    dimValues.data(_inventSum.joinChild());

    dimParm.initFromInventDim(dimValues);

    select sum(AvailPhysical) from localSum where localSum.ItemId == _inventSum.ItemId
        #InventDimExistsJoin(localSum.InventDimId, joinDim, dimValues, dimParm);

    return localSum.AvailPhysical;
}

我相信这将有助于将来的某个人!