Jump to content
  • 0

Verplicht invullen, indien optie in ander veld aangevinkt?


Organeduc

Question

Stel je hebt 3 velden, 'begindatum', 'afbreekdatum' en 'einddatum'.

'Begin-' en 'einddatum' moeten altijd worden ingevuld. Een afbreekdatum mag alleen maar, maar moet dan ook worden ingevuld, indien in een boolian-veld, van de drie opties 'normaal', 'afgebroken' en 'loopt door', de optie 'afgebroken' is aangevinkt.

Hoe krijg ik dat voor elkaar?

Link to comment

9 answers to this question

Recommended Posts

  • 0

Valideer het veld afbreekdatum met een calculatie.

Zoiets als: If (booleanveld = ''afgebroken'' ; NotIsEmpty(afbreekdatum); IsEmpty(afbreekdatum))

Indien de boolean radiobutton op ''afgebroken'' staat en de afbreekdatum is niet ingevuld dan geeft FMP een foutmelding.

Zo ook als de radiobutton niet staat op ''afgebroken'' en de afbreekdatum is wel ingevuld.

Link to comment
  • 0

Nog een zetje...

 

statusafbreekdatum (tekstveld waaraan waardelijst is gekoppeld in de

vorm van radiobuttons; waarden: normaal, loopt door, afgebroken.

 

afbreekdatum (datumveld dat is gevalideerd via opties, validation tab, validate by calculation)

vul in het calculatievenster in:

If ( statusafbreekdatum="afgebroken" ; not IsEmpty ( afbreekdatum ) ; IsEmpty ( afbreekdatum ) )

 

BTW: notIsEmpty() is een samengestelde functie NOT en ISEMPTY()

Link to comment
  • 0

Ik heb weer een engel ontmoet. Arnoud bedankt. Dat je aangaf dat NOTISEMPTY een samenstelling is van twee parameters, deed mij vermoeden dat ze ook met een spatie tussen beide opties gebruikt zouden moeten worden en voilá, het werkte. Een programmeur zal wel weten dat je zoiets niet aan elkaar vastschrijft, maar ik ben geen programmeur. Wel een geïnteresseerde. Weer wat geleerd!

Misschien wat onhandig, maar toch.

 

Toch nog een extra vraagje:

Er is ook ergens een veld met een bepaalde begindatum. De datum die je aangeeft in dit gevalideerde veld mag natuurlijk nooit vóór die begindatum liggen. Hoe zorg ik ervoor dat dat niet kan gebeuren?

Link to comment
  • 0

Even het antwoord geven kan natuurlijk maar je leert er VEEL meer van als je er ZELF achter komt. Zorg daarom eerst dat je goed begrijpt wat die if statement (of een CASE statement) doet.

Dus blader eens in de help file!

Daarna kan je de calculatie (op de goede plaats) uitbreiden met de door jouw gestelde extra voorwaarde.

 

Succes

 

Arnoud

Link to comment
  • 0

Arnoud, dank voor je didactische aanwijzingen :wink:

De volgende berekeningen had ik bedacht (samen met jouw hulp trouwens):

 

1.

Case

( statusafbreekdatum = "Afgebroken" ;

not IsEmpty(afbreekdatum;

( docent = 1; not IsEmpty(afbreekdatum);IsEmpty(afbreekdatum))

2.

If

( statusafbreekdatum = "Afgebroken" ;

not IsEmpty(afbreekdatum);

IsEmpty(afbreekdatum))

and

If ( docent = 1 ;

not IsEmpty(afbreekdatum);

IsEmpty(afbreekdatum))

3.

If

( statusafbreekdatum = "Afgebroken" ;

not IsEmpty(afbreekdatum);

IsEmpty(afbreekdatum))

 

1 Werkt alleen maar voor het eerste deel,

2 Idem

3 Werkt goed!

 

Wat doe ik fout?

Link to comment
  • 0
Wat doe ik fout?

De structuur van de if statement is niet correct, volgens mij begrijp je die nog niet.

Maak een nieuw calculatieveld, voer een if-statement in en je ziet wat ik bedoel.

 

Toch nog een extra vraagje:

Er is ook ergens een veld met een bepaalde begindatum. De datum die je aangeeft in dit gevalideerde veld mag natuurlijk nooit vóór die begindatum liggen. Hoe zorg ik ervoor dat dat niet kan gebeuren?

 

De extra ('and') voorwaarde is: afbreekdatum>begindatum

Als je de if-statement goed begrijpt moet je er nu uit kunnen komen.

 

(die 'docent' laat ik maar even voor wat het is)

Link to comment
  • 0
Ik heb een nieuw bestandje gemaakt. Daarin werken mijn formules weer niet.

Wat precies doe ik niet goed?

 

 

If ( Einde contract = "Afgebroken"; not IsEmpty (Verbreekdatum contract);IsEmpty ( Verbreekdatum contract))

and Verbreekdatum contract > Begindatum contract

 

1. Verbreekdatum contract > Begindatum contract staat niet in de

if statement, maar daarbuiten.

2. als je de voorwaarde al in de statement wilde verwerken dan

staat ie ook nog eens verkeerd, want hij moet in het TRUE gedeelte

staan en niet in het FALSE gedeelte.

 

if(voorwaarde; TRUE ; FALSE)

Link to comment

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