|
Tip 8 - Correct gebruik van de Auto Enter functie met
calculaties 
Gegevens intikken
hoeven we niet altijd zelf te doen. FileMaker kan
ervoor zorgen dat dat automatisch gebeurt, tenminste indien
we dat aangegeven hebben in Define
Fields - Options - Auto Enter.
Zo kunnen we records bijvoorbeeld automatisch laten
nummeren, en het is ook mogelijk automatisch de aanmaakdatum
in te vullen. De knapste mogelijkheid is echter wel dat
gegevens automatisch ingevuld kunnen worden via een
calculatie. Hierbij zitten wel wat addertjes onder het
gras (geen angeltjes, zoals we vaak lezen...).
Het gebeurt immers
vaak dat deze calculatie zelf gebaseerd is op elementen
die nog moeten ingevuld worden op dit nieuwe record.
De aldus door FileMaker ingevoerde gegevens zijn echter
bedoeld om definitief te blijven en indien de
basisgegevens veranderd worden, dan wordt de berekening
niet opnieuw uitgevoerd (wil men dat wel, dan moet
men gebruik maken van een andere mogelijkheid: het
calculatieveld, maar dat is een ander verhaal).
Het precieze ogenblik
waarop de Auto Enter functie wordt uitgevoerd, is
niet zonder belang. Indien deze immers gebaseerd is op een
calculatie, dan wordt Auto Enter uitgevoerd van
zodra een calculatieresultaat mogelijk is. Dat is dus al
het geval wanneer nog maar één enkel van de
elementen van de calculatie is ingevuld. Uiteraard is dit
eigenlijk niet ideaal, zodat het nodig is een work
around te bedenken.
Concreet voorbeeld:
stel een databank met een tekstveld
Vennootschapsvorm, een tekstveld Bedrijfsnaam,
een calculatieveld Bedrijfsnaam Integraal (met als
formule Bedrijfsnaam
Integraal = Vennootschapsvorm & " " &
Bedrijfsnaam), en
een tekstveld Bedrijfsnaam voor facturatie met
Auto Enter via een calculatie (met als formule
Bedrijfsnaam
voor facturatie = Bedrijfsnaam Integraal).
In dit geval wordt de Auto Enter functie voor het
veld Bedrijfsnaam voor facturatie al uitgevoerd van
zodra één brongegeven beschikbaar is, nl. een
resultaat van de calculatie in Bedrijfsnaam
Integraal. En dat resultaat verschijnt al meteen wanneer
nog maar enkel de Vennootschapsvorm is ingevuld!
FileMaker maakt dan al de calculatie zonder te wachten tot
alle deel-elementen van de formule beschikbaar zijn! Vermits
de Bedrijfsnaam zelf nog niet ingevuld is, is het
resultaat dus gewoon NV! Dat dan achteraf nog wel de
bedrijfsnaam ingevuld wordt, verandert niets meer aan wat
Auto Enter in het veld Bedrijfsnaam voor
Facturatie heeft gezet!
Om dit probleem te
vermijden, volstaat het de berekening pas te laten
uitvoeren wanneer alle brongegevens ingevuld zijn.
Hiertoe volstaat het de calculatie ongewijzigd te laten,
maar ze wel in te bedden in een If-functie die vereist dat
alle deelgegevens aanwezig zijn vooraleer het resultaat mag
berekend worden:
If(not
IsEmpty(Vennootschapsvorm) and not IsEmpty(Bedrijfsnaam);
Vennootschapsvorm & " " & Bedrijfsnaam;
"")
|