Axapta 在Microsoft Dynamics AX 2012 R2中更改尺寸时更新销售线单价

Axapta 在Microsoft Dynamics AX 2012 R2中更改尺寸时更新销售线单价,axapta,x++,dynamics-ax-2012-r2,Axapta,X++,Dynamics Ax 2012 R2,如何处理这个问题?更改销售线中的单价值以更改其大小,据我所知,默认单价来自贸易协议。在这种情况下,没有尺寸,但根据我的要求,我应该为尺寸1、2、3、4和5、6分配贸易协议的值,贸易协议的值应该增加1。i、 e 例如尺寸1,2,3,4->13$和尺寸5,6->14$ 我正在考虑在SalesTable表单中对InventSizeid的修改字段方法进行更改,这是正确的方法还是有更好的方法来实现这一点。感谢您的帮助,请提前检查SalesTable表单转到数据源/InventDim/Fields/Inve

如何处理这个问题?更改销售线中的单价值以更改其大小,据我所知,默认单价来自贸易协议。在这种情况下,没有尺寸,但根据我的要求,我应该为尺寸1、2、3、4和5、6分配贸易协议的值,贸易协议的值应该增加1。i、 e

例如尺寸1,2,3,4->13$和尺寸5,6->14$


我正在考虑在SalesTable表单中对InventSizeid的修改字段方法进行更改,这是正确的方法还是有更好的方法来实现这一点。感谢您的帮助,请提前检查
SalesTable
表单转到数据源/InventDim/Fields/InventSizeId/Methods/Modified打开
Modified
方法,您需要在该方法末尾添加逻辑

例如(这是标准方法修改):


您可能需要执行
salesLine_DS.reread()
salesLine_DS.refresh()
要查看新价格(否则按表单中的F5)。

检查
SalesTable
表单转到数据源/InventDim/Fields/InventSizeId/Methods/Modified打开
修改的
方法,您需要在该方法的末尾添加逻辑

例如(这是标准方法修改):


您可能需要执行
salesLine_DS.reread()
salesLine_DS.refresh()
查看新价格(否则按表单中的F5)。

您可以使用贸易协议根据尺寸、颜色等指定产品变体的价格。请检查以下内容


您可以使用贸易协议根据尺寸、颜色等指定产品变体的价格。请检查以下内容


这确实不是硬编码的正确方法prices@AliaksandrMaksimau值999显然不应该是唯一的例子,必须用他们逻辑中计算的价值来代替。想想看,可能会有数千种产品,任何价格变化都需要一个项目的参与。这真的不是硬编码的正确方式prices@AliaksandrMaksimau值999显然不应该是唯一的例子,必须用逻辑中计算的值来代替。只要想想可能有数千种产品,任何价格变化都需要程序员的参与。你的任务不需要任何开发。AX对此具有标准功能。您的任务不需要任何开发。AX对此具有标准功能。
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
}