Select 下一个 1000
Select next 1000
斧子里有个关键词
firstOnly1000
哪个可以这样用
select firstonly1000 <ObjectName> where <where clause>
有没有办法制作下 1000 个 select?我正在考虑使用 recid 和
select firstonly1000 <ObjectName> where <where clause> && Recid > maxof(firstonly1000.Recid)
但在某些 Axe 版本中,Recid 可以小于零。是否有一些合理的通用方法可以为所有 Ax 版本执行此操作?
我会说不。如果你想做某种分页,你可以使用 query object (see link) 或类似于下面的 X++ 的东西,这几乎是常见的约定。
while select salesTable
{
i++;
if (i>1000)
break;
info(strFmt("%1: %2", i, salesTable.SalesId));
}
或
// Less often used method below. Usually for a specific purpose.
select salesTable;
while (salesTable && i < 1000)
{
i++;
info(strFmt("%1: %2", i, salesTable.SalesId));
next salesTable;
}
我认为完成您尝试使用 RecId
的最简单方法是按 RecId Asc
排序,然后只跟踪您选择的最后一个 RecId
,而不是maxOf
。我认为如果你只是在任何 table.
上任意执行它,你可能会表现不佳
斧子里有个关键词
firstOnly1000
哪个可以这样用
select firstonly1000 <ObjectName> where <where clause>
有没有办法制作下 1000 个 select?我正在考虑使用 recid 和
select firstonly1000 <ObjectName> where <where clause> && Recid > maxof(firstonly1000.Recid)
但在某些 Axe 版本中,Recid 可以小于零。是否有一些合理的通用方法可以为所有 Ax 版本执行此操作?
我会说不。如果你想做某种分页,你可以使用 query object (see link) 或类似于下面的 X++ 的东西,这几乎是常见的约定。
while select salesTable
{
i++;
if (i>1000)
break;
info(strFmt("%1: %2", i, salesTable.SalesId));
}
或
// Less often used method below. Usually for a specific purpose.
select salesTable;
while (salesTable && i < 1000)
{
i++;
info(strFmt("%1: %2", i, salesTable.SalesId));
next salesTable;
}
我认为完成您尝试使用 RecId
的最简单方法是按 RecId Asc
排序,然后只跟踪您选择的最后一个 RecId
,而不是maxOf
。我认为如果你只是在任何 table.