2012-07-12 21 views
4

這似乎是一個簡單的問題,但由於某種原因,我很煩惱。顯示方法 - 多種形式的數據源

我有一個3數據源的表格 - InventTable,InventSum,InventDim

因此,例如,我的網格顯示;

項目,名稱,住所,倉庫,實貨

我已經放在InventDim表格數據源的顯示方法,但我需要從任一inventTransInventSum訪問ItemId。 (顯然尋找「當前」itemId)。

我可以訪問的全部是inventDim,它作爲參數_inventDim作爲標準傳遞。

什麼是訪問「當前」的itemId的最佳方式?

+0

我可以使用cursor()方法嗎? – AnthonyBlake 2012-07-12 14:14:01

+0

我不能使用遊標方法 - 關閉,但不行 – AnthonyBlake 2012-07-12 14:18:26

回答

7

好吧,我找到了答案,非常感謝由里斯德Gruyter這個參考;

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

的關鍵是把顯示方法上InventSum數據源。

然後,您可以使用_inventSum.joinChild()檢索鏈接inventDim,這裏是喬里斯的例子;

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; 
} 

我相信這會幫助別人在未來!