Jump to content
  • 0

Field validations


Jimjams

Question

Posted

Ik heb het volgende aan de hand;

Elk record in een file heeft een aantal basisgegevens die door de gebruiker aangepast mogen worden tot er een welbepaalde handeling werd uitgevoerd (een definitieve berekening). Om te vermijden dat hierna nog gegevens gewijzigd worden, heb ik die basisvelden een validatie meegegeven ( via calculation: IsEmpty(Statusveld) + "Validate only if field has been modified").

Dit werkt prima. Zolang het veld leeg is kan er gewijzigd worden. Wanneer dit codeveld ingevuld is, toont FM een specifieke boodschap wanneer het veld verlaten wordt en geeft twee keuze-knoppen: "Revert field" en "OK".

Wanneer de gebruiker "Revert field" selecteert verloopt alles naar wens; de oorspronkelijke waarde wordt hersteld. In het andere geval echter blijft FM gewoon hangen en wordt de boodschap herhaalt wanneer men probeert om een andere bewerking te doen. Ook dit is niet echt een probleem zolang de gebruiker geen script gebruikt onmiddellijk na het wijzigen van het veld want dan kom ik in de problemen!

FM start het script, stelt tegelijkertijd vast dat de validatie van het gewijzigde veld niet opgaat, onderbreekt het script en toont de boodschap. Nadat de gebruiker 1 van beide knoppen geselecteerd heeft, toont FM echter zijn gebruikelijke (engelstalige) boodschappen m.b.t. het onderbroken script bijv.: "Delete All Records has been canceled. Do you wish to continue with this script?"

Uiteraard heeft de gebruiker geen flauw benul waar dit op slaat en weet dus ook niet welke knop hij moet selecteren.

Ik kan dit uiteraard oplossen door elk mogelijk script (+/- 70 scripts) vooraf te laten gaan door dezelfde validatie maar dat lijkt mij dubbel werk.

Mis ik een mogelijkheid? :?

4 answers to this question

Recommended Posts

  • 0
Posted

Je kan een algemeen validatie script maken waarin alleen een 'Exit record' stap zit. Als dit vooraf wordt gegaan door 'Error capture' kan je daarna met 'Status(HuidigeFout)' zelf controleren of je aan het script mag beginnen.

Je moet dat script wel overal eerst aanroepen, dus ik ben bang dat je wel je 70 scripts af moet.

  • 0
Posted

In dit geval is het beter om NIET de error capture op "on" te zetten, maar wel de user abort op "off" te zetten, zodat de gebruiker niet handmatig het script kan onderbreken.

 

allow user abort [off]
exit record/request
if [status(currentError) <> 0]
 allow user abort [on]
 halt script
end if
allow user abort [on]

 

Dit subscriptje roep je op vanuit elke script dat het eventueel nodig heeft (inderdaad, innige deelneming).

Het resultaat is dat de gebruiker wel een correcte foutmelding krijgt, maar niet het script kan onderbreken.

  • 0
Posted

Inderdaad innige deelneming, maar error capture 'on' geeft je ook nog de mogelijkheid zelf foutmeldingen te geven in plaats van de soms wat te technische van filemaker zelf.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...