2017-04-24 81 views
1

如何解決此問題?據我所知,默認單位價格來自貿易協議,改變銷售額的單價。在這種情況下,沒有規模,但對於我的要求,我應該爲貿易協定規定1,2,3,4和5和6貿易協定的價值,貿易協定的價值應該增加1。即更新SalesLine更改Microsoft Dynamics AX 2012 R2中的大小時的單價

例如大小1,2,3,4 - > 13 $和大小5,6 - > 14 $

我正在考慮在SalesTable窗體中的InventSizeid的修改後的字段方法中進行更改,請問這是正確的方法還是有更好的方法來做到這一點。任何幫助表示讚賞,謝謝提前

+1

您的任務不需要任何開發。 AX具有標準的功能。 –

回答

-1

檢查SalesTable形式數據來源/ InventDim /場/ InventSizeId /方法/修改開放modified方法,你需要添加你的邏輯在這個方法結束。

例如(這是STANDAR法修改):

public void modified() 
{ 
    SalesCalcAvailableDlvDates salesCalcAvailableDlvDates; 

    super(); 

    salesLine.modifyInventDim(inventDim, fieldNum(InventDim,InventSizeId), !salesLine.MatchingAgreementLine); 

    if (salesLine.DeliveryDateControlType) 
    { 
     salesCalcAvailableDlvDates = SalesCalcAvailableDlvDates::newCommonSalesDlvDateType(salesLine,0,inventDim); 
    salesCalcAvailableDlvDates.modifiedFieldBeforeInsert(salesLine); 
    } 
    salesLine_DS.cacheCalculateMethod(tableMethodStr(SalesLine,itemName)); 

    //Your logic 
    ... 
    ... 
    ... 
    SalesLine.SalesPrice = 999; //Your new sales price. 
    //Your logic END 
} 

你可能需要執行salesLine_DS.reread();salesLine_DS.refresh();看到新的價格(在形式上否則按F5)。

+0

這實在不是一個合適的方式來硬編碼價格 –

+0

@Aliaksandr Maksimau值999顯然不應該是它的唯一例子,必須由其邏輯中計算的值替換。 –

+0

只要認爲可以有成千上萬的產品,任何價格變化都需要程序員的參與 –

0

您可以使用貿易協議根據尺寸,顏色等指定產品變體的價格。請檢查以下link

enter image description here