在搜索交叉引用备用ID时填充InventoryID

时间:2017-08-24 16:32:03

标签: acumatica

我一直在尝试使用'UsrAlternateIDs'(自定义字段)值(这是库存商品的交叉参考值的串联)来选择库存。这是我试图实现的地方。 enter image description here

因此,如果我输入正确的InventoryID,它会选择我现在存在的库存。但是现在,无论我输入什么价值,首先它会检查它是否是正确的库存ID并为我选择库存。如果没有,它应该寻找库存项目的替代品,如果我输入任何一个(与';'分开),它应该为我选择库存项目。

以下是我编写的代码段:

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);
}

但它不起作用。我错过了什么?

此外,我还查看了“采购订单”页面的业务逻辑,它将查找列AlternateID,如果没有连接且只有单个值,则工作。但是代码对我来说没有多大意义。如果你能向我解释那就太好了。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您尝试让选择器搜索广告资源ID和备用ID,请考虑使用

  

CrossItemAttribute

示例用法可以是这样的,这里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

商品主信息 enter image description here

未绑定字段,条形码中的键

enter image description here

系统查找正确的项目

enter image description here