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

Ant*_*ake 4 x++ axapta dynamics-ax-2009

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

我有3个数据源形式- ,InventTable,.InventSumInventDim

所以,例如,我的网格显示;

项目,名称,网站,仓库,实物库存

我已经在InventDim表单DataSource 上放置了一个显示方法,但我需要访问ItemId来自inventTrans或者InventSum.(显然正在寻找"当前"项目ID).

我可以访问的是inventDim作为参数传递的_inventDim标准.

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

Ant*_*ake 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;
}
Run Code Online (Sandbox Code Playgroud)

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