FileMaker - Tip
100
![]()
|
|
|
Iemand vraagt hoe hij een veld kan beveiligen zodat het, eens ingevuld, niet meer te wijzigen is. Laten we dat veld bijvoorbeeld Datum Factuur noemen. Eigenlijk is dat niet zo moeilijk als we een scriptje maken dat geactiveerd wordt doordat we het veld aanklikken. We moeten van dat veld dus een button maken. Daarnaast moeten we ook beletten dat de gebruiker in het veld kan terecht komen via de Tab-toets. We moeten het veld dus ook uit de Tab-volgorde halen. Via dat scriptje geven we dus toegang tot dat veld alleen als het mag, namelijk om iets in te vullen wanneer het leeg is, of om te zoeken wanneer we in Find Mode staan.
If [IsEmpty(Field) or Status(CurrentMode) = 1]
Eventueel kan nog een achterdeurtje voorzien worden voor de ontwikkelaar of de databank-beheerder, zodat hijzelf nog wel binnenkan door te klikken met een ingedrukte Modifier Key (dit wordt uitgelegd in Tip 7). Indien dat nodig is, dan voegen we aan het If-statement een derde mogelijke voorwaarde toe: or Status(CurrentModifierKeys) = ... We kunnen hier min of meer vrij een getal kiezen afhankelijk van de gewenste toetsencombinatie. Meer info hierover staat in de online help van FileMaker onder het trefwoord Status(CurrentModifierKeys).
Dank zij Darren Terry kennen we nog een andere methode: we kunnen in Define Fields een validatie voorzien die hetzelfde effect veroorzaakt. Hiertoe hebben we een tweede veldje nodig dat we bijvoorbeeld Slot noemen. Dit calculatieveldje vult zich automatisch met de tekst "Ingevuld" wanneer het veld Datum Factuur ook ingevuld is. Hiertoe gebruiken we deze formule:
If [not IsEmpty(Datum Factuur);"Ingevuld;""]
Als de factuurdatum ingevuld is staat er in Slot dus de tekst Ingevuld, anders staat er niets. Nu de beveiliging van de factuurdatum: hiertoe gebruiken we in Validation (strict) deze formule: IsEmpty(Slot) Deze methode heeft het voordeel dat we nog wel in het veld Datum Factuur kunnen klikken zodat we bijvoorbeeld de datum nog kunnen kopiëren om hem vervolgens ergens anders te plakken. Zie ook Tip 193. |
avd@avd-ci.be - contactformulier