在SalesTable表单中,如何在物品被拾取时保护salesLine维度?

时间:2017-02-21 15:08:54

标签: axapta dynamics-ax-2009

在我们的Dynamics Ax 2009配置中,我们希望避免在拾取或交付物品后更改库存尺寸。 有时,用户在已经注册交易时更改销售线上的面部库存维度(仓库,位置)。

我不知道通过更改库存或销售参数来保护它的方法。

我尝试解决此问题,active()表单Salesline数据源中的SalesTable方法更改,该方法调用特定方法:

if (InventDim_Ds.allowEdit())
{
    if (SalesLine.pickedInTotalSalesUnit() != 0 || SalesLine.DeliveredInTotal() != 0)
    {
        InventDim_Ds.allowEdit(false);
    }
}

但它不起作用,或者效果不好:现在即使没有采摘或交付任何东西也无法改变库存尺寸。

我认为这与销售线和维度之间的联系有关,但我不知道如何修复我的代码。

1 个答案:

答案 0 :(得分:1)

乍一看,您的问题似乎与:

  

if (InventDim_Ds.allowEdit())

因为它不允许在行之间进行更改。如果选择了一行,则会停用InventDim_Ds,然后当您转到下一个SalesLine触发active()方法时,它会看到它已被禁用而未输入if声明。

试试这个:

InventDim_ds.allowEdit(!salesLine.pickedInTotalSalesUnit() && !salesLine.deliveredInTotal());