如何使库存项目标签 (IN619200) 为收到的每个项目打印一个标签?

How to make the Inventory Item Label (IN619200) to print one label per unit of each item received?

开箱即用 Acumatica Inventory Item Label 报告 (IN619200) 旨在仅在项目序列化时为收据上的行项目打印多个标签。我们将修改报告,允许用户 select 收据编号,并让系统根据每个项目收到的数量生成标签数量,无论它们是否序列化

我们将修改开箱即用的库存标签报告 (IN619200),它将根据收到的数量打印每个标签,而不是为非序列化库存项目的所有数量打印一个标签。

我们需要一个用户 table 并且需要用数据填充它。

CREATE TABLE UsrNumbers(Number INT PRIMARY KEY);
GO 
INSERT UsrNumbers 
SELECT TOP 1000 ROW_NUMBER() OVER (ORDER BY name) FROM sys.all_columns;

其中 1000 可能是每件商品的最大可能值。

现在为 UsrNumber 创建 DAC (Data Access Class) 并发布定制,以便 DAC 可以在报告中使用。

using System;
using PX.Data;

namespace InventoryLabelReportExtPkg
{
    [Serializable]
    public class UsrNumbers : IBqlTable
    {
        #region Number
        [PXDBInt(IsKey = true)]
        [PXUIField(DisplayName = "Number")]
        public virtual int? Number { get; set; }
        public abstract class number : IBqlField { }
        #endregion
    }
}

现在在 Acumatica 报表设计器中修改库存标签报表 (IN619200),并在架构生成器中包含如下关系。

Download Deployment Package