我可以在 DAC 扩展中使用 PXDBScalar 来查询同一个表中的记录吗?

定制器

我对 Acumatica 世界很陌生。我接到的任务是向 SOLine 添加一个字段,该字段将显示给定 SOLine 上相同库存项目在未来 30 天内要发货的数量总和。请求是在一般查询中提供该字段。

我已经创建了一个 DAC 扩展,并认为一个带有 PXDBScalar 的字段应该可以做到。

但是,当我将该字段添加到通用查询时,显示的所有记录的值都相同。就好像在尝试查询同一个表时,它只使用项目的聚合值之一,而不是为 GI 中显示的每个项目/行重新计算。

我在 PXDBScalar 公式中做错了什么吗?我是否缺少对当前记录的引用?

namespace PX.Objects.SO
{
  public class SOLineExt : PXCacheExtension<PX.Objects.SO.SOLine>
  {

    #region DaysOf
    public class int_DaysInFuture : PX.Data.BQL.BqlInt.Constant<int_DaysInFuture>
    {
      public int_DaysInFuture()
        : base(30)
        {
        }
    }
    #endregion

    #region UsrSalesInNextThirtyDays
    public abstract class usrSalesInNextThirtyDays : PX.Data.IBqlField {}
    [PXDecimal(2)]
    [PXUIField(DisplayName="Sales in next 30 days")]
    [PXDBScalar(typeof(Search4<SOLine.openQty,
         Where<SOLine.inventoryID, Equal<SOLine.inventoryID>
          ,And< Where<DateDiff<SOLine.shipDate, Today, DateDiff.day>, LessEqual< int_DaysInFuture > >>
         >
        ,Aggregate<GroupBy<SOLine.inventoryID, Sum<SOLine.openQty>>>
                             >))]
    public virtual Decimal? UsrSalesInNextThirtyDays{ get; set; }
    #endregion


  }
}

因此,添加此字段表明与 InventoryItem 的链接按预期工作。

    #region UsrSalesInNextThirtyDays2
    public abstract class usrSalesInNextThirtyDaysTwo : PX.Data.IBqlField {}
    [PXDecimal(2)]
    [PXUIField(DisplayName="Base Price")]
    [PXDBScalar(typeof(Search<InventoryItem.basePrice,
         Where<InventoryItem.inventoryID, Equal<SOLine.inventoryID>>
                             >))]
    public virtual Decimal? UsrSalesInNextThirtyDaysTwo{ get; set; }
    #endregion   

因此,我尝试添加一个内部联接以使用inventoryID 字段强制该行到 InventoryItem,但结果查询仍然返回最后一个项目的总和,作为结果集中所有记录的总和结果。

    public abstract class usrSalesInNextThirtyDays : PX.Data.IBqlField {}
    [PXDecimal(2)]
    [PXUIField(DisplayName="Sales in next 30 days")]
    [PXDBScalar(typeof(
        Search5<SOLine.openQty,
            InnerJoin<InventoryItem,
                On<SOLine.inventoryID, Equal<InventoryItem.inventoryID>>>,
            Where<DateDiff<SOLine.shipDate, Today, DateDiff.day>, LessEqual< int_DaysInFuture > >,
            Aggregate<Sum<SOLine.openQty>>
                             >))]
    public virtual Decimal? UsrSalesInNextThirtyDays{ get; set; }

我觉得我离强迫 DAC 生成正确的查询越来越近了,但我还没有到那里。

定制器

由于子查询的生成方式,您不能以这种方式以循环方式引用该表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在Android上的多个线程中使用同一个RoomDatabase对象吗?

我可以在同一个Swing应用程序中使用两种不同的外观吗?

我可以在PHP中使用多个类来扩展一个类吗?

我可以在Entity Framework SubQuery中使用扩展方法吗?

我们可以在同一个应用程序中同时使用MongoRepository和MongoTemplate吗

我可以在同一个$ array上多次使用explode()吗?

通过使用“ NOT IN”子句检查多个表来查询一个表中的删除记录。可以更简化此查询吗?

我可以在扩展Thread的类中使用ArrayList吗?

我可以在同一个仓库中使用TortoiseGIT和Eclipse EGit吗?

在Acumatica中,您可以使用未绑定的DAC获得图形/页面吗?

我可以在Firefox扩展中使用PHP脚本吗?

我可以在Bash大括号扩展中使用变量吗?

我可以在协议扩展中使用`inout`吗?

我可以在条件扩展页面中使用djangocms插件吗?

我可以使用一个表来更新另一个表中的信息吗?

我可以在for循环中使用bash括号扩展吗?

我可以在同一个 graphviz 记录中使用不同的字体样式/大小吗?

我可以在同一个 Flink 作业中使用 DataSet API 和 DataStream API 吗?

我可以只使用一个请求来填充同一个 html 元素吗?

使用 DynamoDB 时,我可以在同一个主键下有多个条目吗?

我可以在同一个 Intellij 项目目录中使用并行 python 2.7 和 python 3.7 吗?

是否可以扩展 IEntityHistoryStore 来存储每个表而不是跟踪同一个表中的所有内容?

我可以使用 JpaSpecificationExecutor 在同一个表中分组的子查询中创建 where 子句吗?

我可以在同一个文件上使用 .read 的次数有限制吗?

我们可以在同一个 SVG 中使用两个“use: href”属性吗?

我可以使用字典键的信息来定义同一个字典的另一个键吗?

我可以在同一个函数中使用一个函数吗?

我可以在同一个文件中使用 SVG 元素来显示边框图像吗?

Swift - 我可以在通知服务扩展中使用领域吗?