如何忽略正在进行的 FOR EACH 语句?

Smo*_*kus 2 progress-4gl openedge

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

假设我有一个MyTable包含字段PartNr, CreationDate, Company,的表ID

我的FOR EACH声明看起来像这样:

FOR EACH MyTable
   WHERE MyTable.Company = "TestCompany"
      AND MyTable.CreationDate >= 01.01.2021
   NO-LOCK:
   
END.
Run Code Online (Sandbox Code Playgroud)

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

之后,FOR EACH声明应该结束。

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

我几乎找了python相当于break当使用关键字loops

任何帮助深表感谢。

Mik*_*ner 6

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.
Run Code Online (Sandbox Code Playgroud)

  • 您还可以将“WHILE iCounter < 2”添加到“FOR EACH”语句中。 (4认同)