在斧头里有一个关键词
firstOnly1000
可以像
那样使用select firstonly1000 <ObjectName> where <where clause>
有没有一种方法可以选择下一个1000?我当时正在考虑使用 recid 和
select firstonly1000 <ObjectName> where <where clause> && Recid > maxof(firstonly1000.Recid)
,但是在某些Ax版本中,Recid可以小于零。是否有一些合理的通用方法可以对所有Ax版本执行此操作?
答案 0 :(得分:4)
我会拒绝。而且,如果您想进行某种分页,则可以使用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
而不是{{ 1}}。我认为,即使您随意在任何表上进行操作,也可能会导致性能下降。