2006

Feb

17

Av

Sedan FileMaker Pro version 7 går det att tilldela repeterade fält och det är lite magiskt över det hela eftersom det egentligen “inte ska gå”. Jag har tidigare berättat hur det går till men har fått många frågor, så jag känner att jag måste förtydliga det med både funktion och exempel.

Som jag berättade i Repeterade fält finns sedan version 7 den magiska beräkningsfunktionen Get ( BeräknatRepetitionsnummer ) som är nyckeln till att det går överhuvudtaget. När FileMaker beräknar ett repeterat fält loopar programmet internt genom alla repetitionerna, med funktionen Get ( BeräknatRepetitionsnummer ) får du reda på vilken repetition som för närvarande beräknas.  
En egen funktion för att tilldela ett repeterat fält kan se ut så här:

SetRepetition (rep;value) =
Case(
Get ( BeräknatRepetitionsnummer ) <>  rep  or  Extend(value) = ""; "";
Get ( BeräknatRepetitionsnummer ) = rep and IsValid(Extend(value)); 
      Extend(value);
Get ( BeräknatRepetitionsnummer ) = rep; value;
)

Du kan anropa den med SetRepetition (1;fältnamn) och tilldelar då värdet i fältet “fältnamn” till den första repetitionen i fältet. Det viktiga är förstås att det är ett repeterat fält du tilldelar, eller har som resultat av en beräkningfunktion.

Du kan till och med lägga ihop flera anrop efter varandra så här:

SetRepetition(1;fältnamn) & SetRepetition(2;"Rolf") & 
SetRepetition(4;"FileMaker")

för att få ett repeterat fält med innehållet i fältet fältnamn i första repetitionen, “Rolf” i andra repetitionen och “FileMaker” i den fjärde repetitionen, medan den tredje repetitionen (och övriga repetitioner) blir tomma.

Om du inte har FileMaker Pro Advanced kan du inte göra egna funktioner, men du kan använda beräkningsformeln i alla fall, du får skriva lite mer formler varje gång.

Skriv en kommentar

  • (will not be published)
  • 5 + = six

Läs också: