Visual Studio Acumatica扫描移动

oalqel3c  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(109)

我尝试在使用“扫描和移动”屏幕中的“设置数量”按钮时添加额外步骤(AM302010)。我想在按下按钮后设置数量的标准功能之前为另一个字段设置一个值。查看源代码后,我似乎找不到我应该扩展哪个图形来定制屏幕。我还想知道如何覆盖或在哪里覆盖acumatica中的这些扫描功能。
谢谢你的回答。
enter image description here
编辑 *
抱歉我没说清楚。
在扫描移动屏幕中,有一个设置数量按钮。它允许用户在明细中输入数量。我想做的是在此之前添加一个额外的步骤。例如,在设置扫描字段中的数量之前,我想先输入插入报废数量。因此,顺序将是,按设置数量按钮,输入报废数量,按回车(设置数量报废值),输入数量,回车(设置数量值).(原来是,按设置数量按钮,输入数量,回车).enter image description here
我已经找到了要扩展的图。enter image description here目前,我在尝试理解acumatica 2022 R1中的wms的这个新过程时遇到了麻烦。是否可以在标题中添加新的步骤,或者可能添加另一个按钮,作为一种变通方法来实现目标?
再次感谢/

kpbpu008

kpbpu0081#

在推荐查询方法之前,建议您查看以下社区文章,这些文章介绍了新的WMS体系结构以及如何在同一个中覆盖不同的方法:

根据您的要求,建议采用以下方法:
1.为ScanMove图表创建一个新的扫描扩展名,如下所示:

public class ScanMoveExtension : ScanMove.ScanExtension {}

1.通过重写Process方法,创建一个新的ScanCommand以执行所需的操作/更改。
1.在添加SetQtyCommand之前,重写DecorateScanMode方法并添加新命令,如下所示:

[PXOverride]
   public virtual ScanMode<ScanMove> DecorateScanMode(ScanMode<ScanMove> original, Func<ScanMode<ScanMove>, ScanMode<ScanMove>> base_DecorateScanMode)
{
        var mode = base_DecorateScanMode(original);
    if (mode is ScanMaterial.MaterialMode materialMode)
    {
        mode
            .Intercept.CreateCommands.ByReplace(basis =>
             {
               // modify the order of the commands added
               // RemoveCommand, SetQtyCommand and ReleaseCommand
               // add your logic before SetQtyCommand
        });
    }
  return mode;
}

这将使您能够在执行SetQty命令之前执行这些步骤。

相关问题