如何省略 FOR EACH 进行中的语句?

How to leave out of FOR EACH statement in Progress?

我正在努力通过 FOR EACH 从 table 获取前 2 条记录。 我的目标是只读取 table 中的前 2 条记录,并将一个字段值保存到变量中。

假设我有 table MyTable 字段 PartNrCreationDateCompanyID.

我的 FOR EACH 声明如下所示:

FOR EACH MyTable
   WHERE MyTable.Company = "TestCompany"
      AND MyTable.CreationDate >= 01.01.2021
   NO-LOCK:
   
END.

例如,FOR EACH 语句会找到 15 条记录。然而,我只需要前两个。 我想将 first 记录的 PartNr 存储在一个变量中,并将 second 记录的 PartNr 存储在另一个变量中。

之后 FOR EACH 语句应该结束。

我也试过使用FIND FIRST,但是我不知道如何获取第二条记录。

在使用 loops.

时,我几乎在寻找与 break 关键字等效的 python

非常感谢任何帮助。

DEFINE VARIABLE iCounter AS INTEGER NO-UNDO . 

myLoop:
FOR EACH MyTable
   WHERE MyTable.Company = "TestCompany"
      AND MyTable.CreationDate >= 01.01.2021
   NO-LOCK:
   
   iCounter = iCounter + 1 . 

   IF iCounter = 2 THEN 
      LEAVE myLoop . 

END.

如果确实是您事先知道的有限次数的迭代,并且如果您根据要处理的记录执行不同的逻辑,那么您也可以使用静态查询。它可能使代码更清晰。

像这样:

OPEN QUERY qMyQuery 
    FOR EACH MyTable
       WHERE MyTable.Company = "TestCompany"
         AND MyTable.CreationDate >= 01.01.2021
         NO-LOCK. 
         
QUERY qMyQuery:GET-FIRST. 

QUERY qMyQuery:GET-NEXT. 

CLOSE QUERY qMyQuery.