Acumatica 搜索交叉引用备用ID时填充InventoryID
我一直在尝试使用“UsrAlternateIDs”(自定义字段)值(库存项目交叉参考值的串联)选择库存。这就是我试图实现的地方。 因此,如果我输入正确的InventoryID,它将为我选择现在存在的库存。但是现在,无论我输入什么值,它都会首先检查它是否是正确的inventoryID并为我选择inventory。如果没有,它应该寻找存货项目的替代品,如果我键入了其中一个(从“;”中分离),它应该为我选择存货项目 以下是我编写的代码片段:Acumatica 搜索交叉引用备用ID时填充InventoryID,acumatica,Acumatica,我一直在尝试使用“UsrAlternateIDs”(自定义字段)值(库存项目交叉参考值的串联)选择库存。这就是我试图实现的地方。 因此,如果我输入正确的InventoryID,它将为我选择现在存在的库存。但是现在,无论我输入什么值,它都会首先检查它是否是正确的inventoryID并为我选择inventory。如果没有,它应该寻找存货项目的替代品,如果我键入了其中一个(从“;”中分离),它应该为我选择存货项目 以下是我编写的代码片段: protected void FSAppointmentD
protected void FSAppointmentDetPart_InventoryID_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
{
var row = (FSAppointmentDetPart)e.Row;
if(row==null) return;
InventoryItem item = PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<row.InventoryID>>;
if(item!=null)
{
InventoryItem itm = PXSelect<Inventory, Whenre<InventoryItem.alternateIDs, Contains<row.InventoryID>>;
if(itm!=null)
{
}
else
{
throw new PXException("Invalid Inventory Item");
}
}
//sender.SetValue<ContactExt.usrCreditRecordVerified>(e.Row, false);
}
protectedvoid FSAppointmentDetPart\u InventoryID\u FieldUpdated(PXCache缓存,PXFieldUpdatedEventArgs e)
{
var row=(FSAppointmentDetPart)e.row;
if(row==null)返回;
如果您想让您的选择器搜索库存ID和备用ID,请考虑使用< /P>
交叉项属性
示例用法可以是这样的,这里INPrimaryAlternateType.CPN定义了备用id的类型
#region InventoryID
public abstract class inventoryID : PX.Data.IBqlField
{
}
protected Int32? _InventoryID;
[CrossItem(INPrimaryAlternateType.CPN, Filterable = true)]
public virtual Int32? InventoryID
{
get
{
return this._InventoryID;
}
set
{
this._InventoryID = value;
}
}
#endregion
编辑
试图用作未绑定字段
#region InvID
public abstract class invID : PX.Data.IBqlField { }
[PXInt]
[CrossItem(DisplayName="TEST")]
public virtual int? InvID { get; set; }
#endregion InvID
项目主信息
未绑定字段,条形码中的键
系统找到正确的项目
您是否试图让选择器搜索备用id和库存id?我不知道我是否理解您的问题,但这正是我试图做的。但这正是我试图做的。这里唯一的问题是,如果字段值为“12345678;23456798”,那么它对“12345678”或“23456798”都不起作用。因为值来自库存项交叉引用的串联。您是否检查了我的答案?并尝试使用该属性,acumatica的此属性应该可以做到这一点,因此您不希望使用带有串联的alternateID的用户定义字段。我尝试将交叉项属性项附加到inventoryID,但在发布时出现此错误。顺便说一句,我试图查找有关此属性的文档,但找不到。我查看了help.acumatica.com,甚至查看了可用的pdf文件,但在任何地方都找不到,谷歌搜索也没有帮助。请在问题中添加库存ID DAC字段。交叉项属性位于命名空间PX.Objects.in中。我也看到了这一点您在屏幕截图中指定了不相关的bql字段。很抱歉,如果我不理解您的答案。但这是我尝试自定义的页面。这是我所做的更改。但没有区别。这是自定义屏幕吗?您能尝试更改自定义属性吗:替换原始是。此“约会”页面来自另一个名为“服务管理”的自定义项目。请详细说明“替换原始项目”好吗?