Ga naar inhoud
  • 0

Verplicht invullen, indien optie in ander veld aangevinkt?


Organeduc

Vraag

Geplaatst:

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?

9 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

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.

  • 0
Geplaatst:

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()

  • 0
Geplaatst:

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?

  • 0
Geplaatst:

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

  • 0
Geplaatst:

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?

  • 0
Geplaatst:
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)

  • 0
Geplaatst:
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)

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...