FileMaker - Tip 120

 

Klik op om terug te keren naar het selectiemenu.

Tip 120 - Een reeks records dupliceren

Weer een vaak gestelde vraag. Iemand heeft een aantal records gecreëerd of geselecteerd in een databank en wil die reeks nu dupliceren. Hier zijn verschillende mogelijkheden. Een gemakkelijke manier is deze: een loop waarbij niet van de eerste record vertrokken wordt, maar van de laatste.

 

go to LAST record
loop
exit loop if Status(CurrentFoundCount)=0
duplicate
omit record
omit record
end loop
Show all records

Even uitleggen hoe het werkt: stel dat we uit een databank vier records geselecteerd hebben, bijvoorbeeld alle klanten uit Sint-Pieters-Eernegem-over-Wachtberg-Lombeek.

We gaan eerst naar de laatste record. We staan dus op de laatste van vier.
We starten nu de loop. Dat betekent dat al hetgeen nu volgt zo vaak uitgevoerd wordt als nodig. In dit geval: tot wanneer er geen records meer (over) zijn:
exit loop if Status(CurrentFoundCount) = 0.
Vervolgens dupliceren we die laatste record. We hebben er nu dus 5 in onze groep, en we staan op de laatste.
Nu doen we een omit. Hierdoor wordt de pas gecreëerde record uit de reeks gehaald (maar niet gedelete). We staan dus opnieuw op de vierde, maar die hadden we al gedupliceerd. We doen dus nog een omit, zodat we op de derde record staan. De loop start terug en we dupliceren dus deze derde. We hebben nu dus vier records. We doen weer een omit zodat onze pas gedupliceerde opzij gezet wordt en we terug op onze originele staan; die is al gedupliceerd en we hebben die dus niet meer nodig: we doen weer een omit. Nu houden we er nog twee over. Zo gaan we verder tot alle records "op" zijn. Uiteraard eindigen we nu wel met een "lege" record zodat we een Show all records moeten toepassen. De laatste vier van die reeks zijn de pas door ons aangemaakte duplicaten.

Het script loopt sneller indien we het laten beginnen met Freeze window.

Nota: uiteraard kunnen we nog van alles gaan doen met zo'n gedupliceerde record: de nodige scriptstappen zetten we dan vlak voor de eerste omit record.

 

 

 
avd@avd-ci.be - contactformulier