|
Tip 77 - Records selecteren via een Loop met Omit
record
Meestal bevat een Loop de
scriptstap Goto record [next]. Op
die manier kan een loop een volledige reeks records
afwerken. De Exit after last is automatisch mee
ingebouwd.
Maar er zit wel een addertje onder
het gras (en geen angeltje, zoals vaak geschreven wordt):
wanneer we tijdens de Loop een Omit record
(moeten) gebruiken, bijvoorbeeld omdat we bij bepaalde
records geen actie nodig hebben, dan zorgt deze Omit
er wel voor dat de volgende record in de reeks de actuele
wordt. Als we dan nog eens Goto record
[next] uitvoeren - en dat is zo, want die zit
automatisch mee in onze loop -, dan slaan we in feite
één record over, en dat kan de bedoeling niet
zijn! In dat geval moet dus een Goto record
[previous] toegevoegd worden!
Een analoog voorbeeld in een script
dat als taak heeft een aantal gevonden records te
dupliceren:
Loop
Goto 1st Record
Duplicate
Omit Record (om het
duplicaat uit de lijst te
verwijderen)
Goto Previous Record
Omit Record (om het
gedupliceerde uit de lijst te
verwijderen)
Exit Loop if "Status(Current Found Count)=0"
End Loop
|