Axapta 使用locationID和siteID作为筛选器(而不是值)计算项目的可用物理量

Axapta 使用locationID和siteID作为筛选器(而不是值)计算项目的可用物理量,axapta,Axapta,如何计算用户输入的筛选器范围而不是单个LocationID/SiteID的可用物理值?ItemId是一个具体的值 例如 网站“绿色,蓝色” 位置“1*” 项目“XYZ0001” 我通过使用查询来循环位置,并使用InventOnhand和维度参数来获取每次传递的可用物理信息,从而实现了这一点。然而,这是非常缓慢的,并且不适合在销售线上展示。我想我可能需要在InventSum表中添加一个修改版本的findSum?您可以加入InventSum和InventDim字段上的求和AvailPhysica

如何计算用户输入的筛选器范围而不是单个LocationID/SiteID的可用物理值?ItemId是一个具体的值

例如

  • 网站“绿色,蓝色”
  • 位置“1*”
  • 项目“XYZ0001”

我通过使用查询来循环位置,并使用InventOnhand和维度参数来获取每次传递的可用物理信息,从而实现了这一点。然而,这是非常缓慢的,并且不适合在销售线上展示。我想我可能需要在InventSum表中添加一个修改版本的findSum?

您可以加入
InventSum
InventDim
字段上的求和
AvailPhysical

使用X++:

while select sum(AvailPhysical) from inventSum
    where inventSum.ItemId == 'XYZ0001'
    exists join inventDim
    where inventDim.InventDimId == inventSum.InventDimId &&
         (inventDim.Site == 'GREEN' || inventDim.Site == 'BLUE') &&
          inventDim.Location like '1*'
{
    ...
}
您可能应该改为使用查询