Jump to content
  • 0

Conditional lock?


Dr_Flash

Question

Posted

Daar is Dokter Fles weer met zijn urenregistratie 8)

 

Wat NU weer :?:

 

Ik heb dus een bestand "Dagen.fp5" en daarin worden met een scriptje default werkuren ingevuld. Ik heb ook een veld "Invulling" waar men kan aangeven hoe de dag ingevuld is, en wel met het volgende nut: als Invulling gelijk is aan "Werk", dan gelden de ingevulde en eventueel met de hand aangepaste werktijden. Als de invulling iets anders is (ziek, vrij, cursus etc) dan worden de werktijden op 0 gesteld met een scriptje dat onder een Go-button hangt. MAAR: daarna kun je nog steeds de werktijden handmatig wijzigen en ik vraag me af of ik daar niet een soort "conditional lock" op kan gooien. Zo van: als de invulling iets anders is dan Werk dan zijn de werktijden nul en die BLIJVEN nul, en anders kun je ze naar hartelust editten.

 

Of moet dit eigenlijk in "Verlanglijste voor versie 7, 8 en 14"?

18 answers to this question

Recommended Posts

  • 0
Posted

Ik zal toch maar even de uitleg posten voor de toevallige bezoeker :

 

ik heb 3 velden :

 

een veldje Invulling (werk, vakantie, ziek, ....), een veldje Werkuren (getal met een waarde) en een berekeningsveldje Check.

Dat berekeningsveld is gelijk aan 1 indien Invulling gelijk is aan "WERK", en is gelijk aan 0 in alle andere gevallen.

 

Op het veld Werkuren, wat standaard wordt ingevuld met 0, staat een "Validation by Calculation" : = Check. Wat wil zeggen : accepteer de input in het veld Werkuren enkel indien het gaat over een Invulling WERK. In alle andere gevallen geef je een melding dat er geen werkuren ingebracht mogen worden.

 

PS :

Doc, eigenlijk had je het antwoord zelf al gegeven : het antwoord zit namelijk al in de titel van je thread.

  • 0
Posted

Ja ik zie het :D Ik kan het wellicht gebruiken voor iets wat vlak ernaast ligt: die GO button voor het veranderen van de invulling. Daar hangt een scriptje onder

 

If Invulling <> Werk

Set field Begintijd """"

Set field Eindtijd """"

 

De gewerkte uren waren al een calculatie op basis van begin en eindtijd, MAAR alleen als Invulling = werk, anders vast op nul.

 

Ik denk dat ik toch meer aan die Valid by Calc heb dan ik eerst dacht :idea:

  • 0
Posted

:roll: mmmmaar...m-m-maar.... "Revert Field" betekent toch "terug naar de vorige waarde"? Als ik nu ipv 0 een 9 inklop dan krijg ik wel mijn gespecificeerde melding, maar als ik op Revert Field klik, dan gaat alleen maar die melding weg, en niet de waarde zelf.

 

Het te locken veld is een Time-veld, waar je handmatig uren en minuten in kunt vullen.

 

Overigens snap ik ook niet goed wat dat Validation by Calculation betekent en precies doet. Ik begrijp wel dat extra veld dat nodig is (vanwege het Unstored zijn namelijk), maar stel dat de calculation dan "1" als resultaat heeft, wat betekent dat dan voor de "geldigheid" van de waarde van het veld waar die validatie op staat? Dan mag je invullen wat je wil zeker? En als die calculatie "0" is? Wordt dat veld dan leeg? Of nul? of 0:00:00 (tijd)? Of gaat er gewoon niks gebeuren (want daar lijkt het op)? 8O:?:8O

 

Wat is trouwens het verschil tussen OK en Revert Field in dit verhaal? Ik bedoel: Als bepaalde invoer niet mag, dan mag het niet. Dan heb je maar 1 mogelijkheid om verder te gaan: Waarde aanpassen totdat het wel mag.

Of is dat onderscheid er alleen maar voor als "Do Not allow user to override validation" UITgevinkt staat? En dan blijft de vraag: wat is DAN het verschil?

  • 0
Posted
Overigens snap ik ook niet goed wat dat Validation by Calculation betekent en precies doet. Ik begrijp wel dat extra veld dat nodig is (vanwege het Unstored zijn namelijk), maar stel dat de calculation dan "1" als resultaat heeft, wat betekent dat dan voor de "geldigheid" van de waarde van het veld waar die validatie op staat? Dan mag je invullen wat je wil zeker?

hoe raad je het

En als die calculatie "0" is? Wordt dat veld dan leeg? Of nul? of 0:00:00 (tijd)? Of gaat er gewoon niks gebeuren (want daar lijkt het op)?

dan veld behoudt zijn initiele inhoud, vandaar dat ik het veld werkuren ook automatisch laat vullen met O.

 

Wat is trouwens het verschil tussen OK en Revert Field in dit verhaal? Ik bedoel: Als bepaalde invoer niet mag, dan mag het niet. Dan heb je maar 1 mogelijkheid om verder te gaan: Waarde aanpassen totdat het wel mag.

Revert is terug naar de laatste waarde. Jouw fout wordt als het ware automatisch hersteld.

Ok is een bevestiging (kan dus ook een overroeping van de foutmelding betekenen - zie vinkje hieronder). In dit geval gaat je cursor terug naar het veld Werkuren om je de kans te geven je invoer aan te passen.

 

Of is dat onderscheid er alleen maar voor als "Do Not allow user to override validation" UITgevinkt staat?

 

Idd, dan kan je foute invoer geven (vakantie en 8 uren bvb) en die wordt dan toch geaccepteerd. Maar dat wou jij dus niet.

  • 0
Posted
:roll: mmmmaar...m-m-maar.... "Revert Field" betekent toch "terug naar de vorige waarde"? Als ik nu ipv 0 een 9 inklop dan krijg ik wel mijn gespecificeerde melding, maar als ik op Revert Field klik, dan gaat alleen maar die melding weg, en niet de waarde zelf.

 

in jouw ontwerp bedoel je ?

 

in mijn post wordt die waarde wel ingesteld op de laatst ingebrachte.

 

:!: Maar opgelet : ik laat het veld werkuren bij aanmaak automatisch invullen met waarde 0 en dat doe jij in je ontwerp niet denk ik.

  • 0
Posted

Niet bij aanmaak nee... Bij aanmaak komt er de standaard waarde van de klant in te staan. Dus 9 uur of 8:30 of zo. Maar ik heb dus een drop down menuutje waaruit je "ziek", "vrij" etc kunt kiezen, met een go-button die dan die invulling instelt, en meteen de begin- en eindtijden leeg maakt (er verschijnt dan 0:00:00). Of hebben we hier te maken met het verschil tussen tekst-niets en tijd-niets? :idea:

  • 0
Posted

Nou ik heb er even mee zitten stoeien, maar het doet gewoon niet wat ik wil. Soms komt die melding als ik hem niet wil hebben, soms kan je toch gewoon waarden invullen die niet zouden moeten kunnen... :x Ik ga wel wat anders uitpuzzelen of ik laat dit er wel gewoon inzitten....

  • 0
Posted

Even recapituleren:

 

Ik heb dus een bestand "Dagen.fp5" en daarin worden met een scriptje default werkuren ingevuld.

 

Bij aanmaak komt er de standaard waarde van de invuller in te staan.

Dus 9 uur of 8:30 of zo.

 

Maar ik heb een dropdownmenuutje op het veld "Invulling" waar men kan aangeven hoe de dag ingevuld is, waaruit je "ziek", "vrij" etc kunt kiezen, met een go-button die dan die invulling instelt, en meteen de begin- en eindtijden leeg maakt (er verschijnt dan 0:00:00).

 

- als Invulling gelijk is aan "Werk", dan gelden de ingevulde en eventueel met de hand aangepaste werktijden.

- Als de invulling iets anders is (ziek, vrij, cursus etc) dan worden de werktijden op 0 gesteld met een scriptje dat onder een Go-button hangt.

 

MAAR: daarna kun je nog steeds de werktijden handmatig wijzigen en ik vraag me af of ik daar niet een soort "conditional lock" op kan gooien.

 

Zo van: als de invulling iets anders is dan Werk dan zijn de werktijden nul en die BLIJVEN nul, en anders kun je ze naar hartelust editten.

 

De draad zit op dit moment vooral richting Validate-by-calculatie.

 

Je kunt daarnaast nog denken aan:

 

- van de velden waar uren ingevuld kunnen worden: knoppen maken, met scrips die eerst checken of er ingevuld mag worden. Mag dat: ga dan naar het veld, mag dat niet, dan kun je ook niet in dat veld komen.

Belangrijk is dan dat je de invoervelden UIT de tabvolgorde haalt.

 

- FileMaker Pro kent record-level-locking. Dat stel je in bij het wachtwoord. De gebruiker van het wachtwoord kan dan alleen een record onder bepaalde omstandigheden wijzigen.

 

- Een methode die ik over het algemeen prefereer als het om urenregistratie gaat, is het invullen van de gegevens in globalen, dan de OK-knop (waar je heerlijk al je condities onder kwijt kan), en bij een OK de gegevens pas vastleggen in het record. Wijzigen van de gegevens kan dan alleen weer via de wijzig-knop, en zo zit je in een bijzonder prettig en strak te houden invoer-methode.

 

Ik ben persoonlijk niet een al te grote fan van validate-by-calculation, juist vanwege de onduidelijke meldingen (waarbij je de knop-teksten niet kunt wijzigen), het op een-of-andere manier toch vaak onvoorspelbaar gedrag (met vaak als oorzaak dat de programmeur onvoldoende heeft nagedacht over mogelijke situaties):

 

Soms komt die melding als ik hem niet wil hebben, soms kan je toch gewoon waarden invullen die niet zouden moeten kunnen...

 

Dit is een veel gehoorde klacht als men met validate-by-calculation werkt.

 

Daarbij vind validatie pas NA invoer plaats, wat ik altijd rottig vind, ik heb de validatie (zeker als het gaat om: mag er hier iets ingevuld worden) het liefst VOORAF.

  • 0
Posted
Een methode die ik over het algemeen prefereer als het om urenregistratie gaat, is het invullen van de gegevens in globalen, dan de OK-knop (waar je heerlijk al je condities onder kwijt kan), en bij een OK de gegevens pas vastleggen in het record. Wijzigen van de gegevens kan dan alleen weer via de wijzig-knop, en zo zit je in een bijzonder prettig en strak te houden invoer-methode.

 

Dat is inderdaad ook de meest eenvoudige weg : recht toe recht aan, zonder toeters en bellen :!:

 

@ All :

Flash heeft me intussen via de Forum-coulissen de bestanden gemaild (er waren wat upload problemen) maar wegens tijdsgebrek heb ik nog niet de kans gehad om de Validation by Calculation te verifieren in zijn toepassing. Nog even geduld ...

  • 0
Posted

Ik neem aan dat je die werktijden elders ook nog wil gebruiken.

Kan je dan niet een calculatie maken die op basis van Invulling="werk" zegt ik neem de werktijden over en anders zet ik ze op nul. Die calculatie gebruik je waar je hem vervolgens nodig hebt en je hebt geen last meer van de invoer van de gebruiker.

 

rmw

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...