acumatica - 允许添加新的强制图形/屏幕
问题描述
我正在寻找自定义允许添加新按钮以指向正确的图形/屏幕。我有一个 DAC,它从设置页面链接到非库存商品。选择器过滤掉只显示非库存项目。当我使用 AllowAddNew=True 时,它会显示带有指向 Stock Items 页面的链接的铅笔。有没有办法强制它进入非库存项目页面?
这是我的一个 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
解决方案
尝试使用封装的 [NonStockItem] 属性来定义选择器。
您的字段将如下所示:
#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
理论上,这将使用 NonStock Item 的 PXPrimaryGraph,它应该将您重定向到正确的页面。
推荐阅读
- python - 如何在python中覆盖具有多个校准相机的同一场景的两个实时图像
- vue.js - Nuxt.js 导入 lodash
- visual-studio - 缺少 NuGet 包详细信息窗口
- elasticsearch - 在 Elasticsearch 中将“long”数据类型转换为字符串/文本
- php - Laravel 8 在关联表的使用中拉取数据有很多问题
- python - Python 给了我很多回溯的东西是怎么回事
- python - 使用迭代时在 tkinter textarea 小部件中设置多种字体
- azure - 在 Azure B2C 中对用户进行分组和搜索
- google-sheets - 谷歌表格将小数(0-100)转换为分钟(0-60)
- angular - 通过 Angular 中的兄弟组件发送数据