FileMaker - Tip 70

 

Klik op om terug te keren naar het selectiemenu.

Tip 70 - Een veld leegmaken vanuit een script

Normaal gesproken zou het leegmaken van een veld gebeuren met de scriptstap Clear. Maar die werkt alleen als het veld dat we willen leegmaken aanwezig is op de actieve lay-out en dat is niet altijd het geval.

Het is dus beter gebruik te maken van SetField: die scriptstap werkt immers altijd. We vullen het veld dan gewoon met niets:

SetField[<veldnaam>;""]

De twee aanhalingstekens staan hier pal na mekaar; er staat dus niets tussen. Het veld wordt dus gevuld met niets en is dus leeg. Dit werkt perfect voor tekstvelden en containervelden, maar bij datum- en tijdvelden is het resultaat verrassend. "Niets" staat namelijk voor "niets als tekst"... en een datum- of tekstveld verwacht geen tekst ! Als we een datum- of tijdveld op de genoemde manier leegmaken, dan verschijnt er geen leeg veld, integendeel: we krijgen een veld met een mooi vraagteken in. FileMaker bedoelt daarmee: "Wat betekent dit nu weer? Wat moet ik hier nu feitelijk tonen? Ik verwacht immers een datum maar ik krijg een tekst!". 

We moeten dan maar een helpende hand toesteken. Twee manieren staan hier ter beschikking.

Eerste manier

We creëren een globaal veld van hetzelfde formaat (dus datum of tijd) en laten dit verder ongemoeid: we zetten er NOOIT iets in. We hebben dus een echt leeg veld dat we bijv. GEmptyTime noemen (de G staat voor global field...). Om ons tijdveld leeg te maken gebruiken we weer SetField:

SetField[<veldnaam>;GEmptyTime]

Tweede manier, iets ingewikkelder, maar dichter bij FileMaker's logica:

Set Field [<veldnaam>;TextToTime("")]

Dank zij TextToTime wordt het "niets" omgezet in een "tijdniets"...

 
avd@avd-ci.be - contactformulier