Acumatica 允许添加新的强制图形/屏幕

Acumatica 允许添加新的强制图形/屏幕,acumatica,Acumatica,我希望自定义允许添加新按钮以指向正确的图形/屏幕。我有一个DAC,可以从设置页面链接到非库存项目。选择器过滤掉,仅显示非库存项目。当我使用AllowAddNew=True时,它会显示铅笔,并带有指向“库存项目”页面的链接。有没有办法强制它转到非库存项目页面 下面是我的一个DAC字段出现此问题的示例 #region DefCylDepInventoryID [PXDBInt] [PXUIField(DisplayName = "Default Cylinder Deposit Item")] [

我希望自定义允许添加新按钮以指向正确的图形/屏幕。我有一个DAC,可以从设置页面链接到非库存项目。选择器过滤掉,仅显示非库存项目。当我使用AllowAddNew=True时,它会显示铅笔,并带有指向“库存项目”页面的链接。有没有办法强制它转到非库存项目页面

下面是我的一个DAC字段出现此问题的示例

#region DefCylDepInventoryID 
[PXDBInt]
[PXUIField(DisplayName = "Default Cylinder Deposit Item")]
[PXSelector(typeof(Search<
    InventoryItem.inventoryID, 
    Where2<
        Where<InventoryItem.stkItem, Equal<False>>, 
        And<Where<InventoryItem.itemStatus, NotEqual<InventoryItemStatus.unknown>>>>>), typeof(InventoryItem.inventoryID), typeof(InventoryItem.descr), typeof(InventoryItem.itemStatus), DescriptionField = typeof(InventoryItem.descr), SubstituteKey = typeof(InventoryItem.inventoryCD))]
[PXForeignReference(typeof(Field<CYSetup.defCylDepInventoryID>.IsRelatedTo<InventoryItem.inventoryID>))]
public virtual int? DefCylDepInventoryID { get; set; }
public abstract class defCylDepInventoryID : PX.Data.BQL.BqlInt.Field<defCylDepInventoryID> { }
#endregion
#区域DefCylDepInventoryID
[PXDBInt]
[PXUIField(DisplayName=“默认气瓶存放项目”)]
[PX选择器(类型)(搜索<
InventoryItem.inventoryID,
其中2<
哪里
和>>),typeof(InventoryItem.inventoryID),typeof(InventoryItem.descr),typeof(InventoryItem.itemStatus),DescriptionField=typeof(InventoryItem.descr),SubstituteKey=typeof(InventoryItem.inventoryCD))]
[PXForeignReference(type of(Field.IsRelatedTo))]
公共虚拟整数?DefCylDepInventoryID{get;set;}
公共抽象类defCylDepInventoryID:PX.Data.BQL.BqlInt.Field{}
#端区

尝试使用封装的[NonSockItem]属性定义选择器

您的字段如下所示:

#region DefCylDepInventoryID 
[PXUIField(DisplayName = "Default Cylinder Deposit Item")]
[NonStockItem]
[PXRestrictor(typeof(Where<InventoryItem.itemStatus, NotEqual<InventoryItemStatus.unknown>>), "Message")] 
[PXForeignReference(typeof(Field<CYSetup.defCylDepInventoryID>.IsRelatedTo<InventoryItem.inventoryID>))]
    public virtual int? DefCylDepInventoryID { get; set; }
    public abstract class defCylDepInventoryID : PX.Data.BQL.BqlInt.Field<defCylDepInventoryID> { }
    #endregion
#区域DefCylDepInventoryID
[PXUIField(DisplayName=“默认气瓶存放项目”)]
[非库存项目]
[PX限制器(类型(其中),“消息”)]
[PXForeignReference(type of(Field.IsRelatedTo))]
公共虚拟整数?DefCylDepInventoryID{get;set;}
公共抽象类defCylDepInventoryID:PX.Data.BQL.BqlInt.Field{}
#端区

理论上,这将使用非库存项目的PXPrimaryGraph,它会将您重定向到正确的页面。

不确定这是否有效。缺少明确指向主图的机制似乎有问题。我之前建议为该用例创建一个自定义按钮:因为标题中有一个输入错误,所以我找不到该文章。对于AddNew,NonSockItem不起作用,但选择器的代码较少。AllowEdit应该起作用,因为它已经设置了stkItem字段。对于AllowAddNew,根本原因是PrimaryGraph没有编程接口。重定向是隐式的和自动的,所以我找不到任何解决方案。我尝试从InventoryItem继承并更改PrimaryGraph,但失败了,系统似乎不允许在该级别进行覆盖。我现在只能建议一些解决方法,比如重新创建一个新的DAC或者为+按钮定制一个操作。页面中的AllowEdit=true通常是向项目添加链接的关键。当它为空时,我想它只会打开正确的空页。因为InventoryItem已经基于stkItem指示PXPrimaryGraph,所以它应该打开正确的图形。