Axapta 在Microsoft Dynamics AX 2012 R2中更改尺寸时更新销售线单价
如何处理这个问题?更改销售线中的单价值以更改其大小,据我所知,默认单价来自贸易协议。在这种情况下,没有尺寸,但根据我的要求,我应该为尺寸1、2、3、4和5、6分配贸易协议的值,贸易协议的值应该增加1。i、 e 例如尺寸1,2,3,4->13$和尺寸5,6->14$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
我正在考虑在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
}