Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Acumatica 搜索交叉引用备用ID时填充InventoryID_Acumatica - Fatal编程技术网

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

Acumatica 搜索交叉引用备用ID时填充InventoryID,acumatica,Acumatica,我一直在尝试使用“UsrAlternateIDs”(自定义字段)值(库存项目交叉参考值的串联)选择库存。这就是我试图实现的地方。 因此,如果我输入正确的InventoryID,它将为我选择现在存在的库存。但是现在,无论我输入什么值,它都会首先检查它是否是正确的inventoryID并为我选择inventory。如果没有,它应该寻找存货项目的替代品,如果我键入了其中一个(从“;”中分离),它应该为我选择存货项目 以下是我编写的代码片段: protected void FSAppointmentD

我一直在尝试使用“UsrAlternateIDs”(自定义字段)值(库存项目交叉参考值的串联)选择库存。这就是我试图实现的地方。

因此,如果我输入正确的InventoryID,它将为我选择现在存在的库存。但是现在,无论我输入什么值,它都会首先检查它是否是正确的inventoryID并为我选择inventory。如果没有,它应该寻找存货项目的替代品,如果我键入了其中一个(从“;”中分离),它应该为我选择存货项目

以下是我编写的代码片段:

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字段。很抱歉,如果我不理解您的答案。但这是我尝试自定义的页面。这是我所做的更改。但没有区别。这是自定义屏幕吗?您能尝试更改自定义属性吗:替换原始是。此“约会”页面来自另一个名为“服务管理”的自定义项目。请详细说明“替换原始项目”好吗?