如何在“运货”屏幕上添加动作和处理程序?我们想在屏幕SO503000上的“动作”组合框中添加一个动作,然后在代码中添加一个处理程序以处理新动作。我们想要执行此操作,而不必覆盖SOShipmentEntry图中用于操作的庞大的switch / case语句。
PXAutomationMenu属性从“自动化步骤”中拉出所有操作,这些操作已将适当的处理屏幕设置为“成批处理屏幕”:
要扩展“处理装运”屏幕上可用的操作列表,请按照以下步骤操作:
在BLC扩展中声明自定义动作,并在BLC初始化期间调用AddMenuAction方法,以将其添加为“动作”按钮的下拉项
要将自定义操作添加到“处理装运”屏幕,请将自定义操作添加到适当的自动化步骤,然后指定“批量处理”屏幕ID。当用户选择您的自定义动作时,包含该自定义动作的所有“自动化步骤”中的“发运”将在“处理发运”屏幕上可供选择:
如下面的代码片段所示,为SOShipmentEntry BLC声明的两个扩展(相同的第一级)可用于扩展多个定制项目(两个彼此独立的定制包;一个或两个)的Actions下拉列表。两者都可以在特定站点上发布。并且都可以在“处理装运”屏幕上添加操作):要解决此情况,请执行以下操作:
public class SOShipmentEntryExt1 : PXGraphExtension<SOShipmentEntry>
{
public PXAction<SOShipment> Test1;
[PXButton]
[PXUIField(DisplayName = "Test Action 1")]
protected void test1()
{
throw new PXException("Not implemented action: {0}", "Test Action 1");
}
public override void Initialize()
{
Base.action.AddMenuAction(Test1);
}
}
public class SOShipmentEntryExt2 : PXGraphExtension<SOShipmentEntry>
{
public PXAction<SOShipment> Test2;
[PXButton]
[PXUIField(DisplayName = "Test Action 2")]
protected void test2()
{
throw new PXException("Not implemented action: {0}", "Test Action 2");
}
public override void Initialize()
{
Base.action.AddMenuAction(Test2);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句