Jump to content
  • 0

case function


Femca

Question

Posted

hoi,

 

Vraagje, onderstaand zijn er 4 afzonderlijke case statements die een calculatie correct uitvoeren maar ik wil deze 4 calculaties in 1 enkele calculatie stoppen maar dit lukt me niet.

 

Case ( Stop_1 < visits::VisitB_Date and not IsEmpty ( Stop_1 ) ; "gestopt voor Ronde 1" ; " " )

 

Case (Stop_1 > visits::VisitB_Date and Stop_1 < Visits round2::VisitB2_Date and not IsEmpty ( Stop_1 ) and Start_1 < visits::VisitB_Date ; "actief in Ronde 1 maar gestopt tussen R1 en R2" )

 

Case ( Start_1 > visits::VisitB_Date and Stop_1 < Visits round2::VisitB2_Date and not IsEmpty ( Start_1 ) and not IsEmpty ( Stop_1 ) ; "start na R1 en stop voor R2")

 

Case ( Start_1 > visits::VisitB_Date and IsEmpty ( Stop_1 ); "start na ronde 1 en nog steeds actief in ronde 2")

 

Wat ik gedaan heb is

Case (( Stop_1 < visits::VisitB_Date and not IsEmpty ( Stop_1 ) ; "gestopt voor Ronde 1" ; " ") or (Stop_1 > visits::VisitB_Date and Stop_1 < Visits round2::VisitB2_Date and not IsEmpty ( Stop_1 ) and Start_1 < visits::VisitB_Date ; "actief in Ronde 1 maar gestopt tussen R1 en R2" ) or ( Start_1 > visits::VisitB_Date and Stop_1 < Visits round2::VisitB2_Date and not IsEmpty ( Start_1 ) and not IsEmpty ( Stop_1 ) ; "start na R1 en stop voor R2") or ( Start_1 > visits::VisitB_Date and IsEmpty ( Stop_1 ); "start na ronde 1 en nog steeds actief in ronde 2"))

 

maar dit is blijkbaar niet ok want dan krijg ik een 1 te zien.

Weet er iemand aub raad want ik begrijp niet wat ik fout doe .

 

Thanx

6 answers to this question

Recommended Posts

  • 0
Posted

Je gebruikt nu "or", dat gaat niet.

Je kunt wel meerdere case-functies achterelkaar zetten.

Case(....;

Case(....;

Case(.....)))

 

Als je dat door hebt kun je ook de tweede en derde Case weglaten.

Ook de volgorde van je Case is belangrijk, zodra een Case aan een voorwaarde voldoet dan stopt de berekening.

  • 0
Posted

dag hiker,

 

heel erg bedankt voor je antwoord. Maar ik ben bang dat ik nog niet helemaal goed begrijp ivm het achter elkaar zetten van de case functies. Bedoel je dit :

 

Case( Stop_1 < visits::VisitB_Date and not IsEmpty ( Stop_1 ) ; "gestopt voor Ronde 1" ; " " ; (Stop_1 > visits::VisitB_Date and Stop_1 < Visits round2::VisitB2_Date and not IsEmpty ( Stop_1 ) and Start_1 < visits::VisitB_Date ; "actief in Ronde 1 maar gestopt tussen R1 en R2" ;( Start_1 > visits::VisitB_Date and Stop_1 < Visits round2::VisitB2_Date and not IsEmpty ( Start_1 ) and not IsEmpty ( Stop_1 ) ; "start na R1 en stop voor R2"; ( Start_1 > visits::VisitB_Date and IsEmpty ( Stop_1 ); "start na ronde 1 en nog steeds actief in ronde 2"))))

  • 0
Posted

ik zou persoonlijk beginnen met dit een beetje logisch te structureren. Jouw Case functie is gewoon niet te lezen, en dan loop je er zo in verloren.

Case ( 
   Conditie 1 ; Resultaat 1 ;
   Conditie 2 ; Resultaat 2 ;
   Resultaat indien Conditie 1 en 2 niet waar is
)

 

Verder moet je er mee rekening houden dat een case functie van boven naar beneden gaat evalueren. Als conditie 1 waar is, zal hij niet meer conditie 2 proberen te evalueren, maar direct Resultaat 1 teruggeven. Daarom moet je goed opletten in welke volgorde je je condities zet.

  • 0
Posted

Case (

Stop_1 < visits::VisitB_Date and not IsEmpty ( Stop_1 ) ; "gestopt voor Ronde 1" ; " " ;

 

Stop_1 > visits::VisitB_Date and Stop_1 < Visits round2::VisitB2_Date and not IsEmpty ( Stop_1 ) and Start_1 < visits::VisitB_Date ; "actief in Ronde 1 maar gestopt tussen R1 en R2" ;

 

Start_1 > visits::VisitB_Date and Stop_1 < Visits round2::VisitB2_Date and not IsEmpty ( Start_1 ) and not IsEmpty ( Stop_1 ) ; "start na R1 en stop voor R2";

 

Start_1 > visits::VisitB_Date and IsEmpty ( Stop_1 ); "start na ronde 1 en nog steeds actief in ronde 2";

)

 

Dus op deze manier zou het moeten werken, enkel nog rekening houden met de volgorde van de condities en dan zou het moeten werken? Ik ga het direct proberen.

  • 0
Posted

Je eerste conditie lijkt me bizar,

 

Stop_1 < visits::VisitB_Date and not IsEmpty ( Stop_1 ) ; "gestopt voor Ronde 1" ; " " ;

 

Je conditie is "Stop_1 < visits::VisitB_Date and not IsEmpty ( Stop_1 )", en je resultaat is "gestopt voor Ronde 1", wat doet die tweede " " daar nog? Ik denk dat je die mag/moet weglaten.

 

De case functie is altijd als volgt opgebouwd:

Case ( conditie1 ; resultaat1 ; conditie2 ; resultaat2 ; standaardresultaat )

  • 0
Posted

Probleem opgelost!! Echt Enorm bedankt, ik heb weer veel bijgeleerd over Filemaker en ik ben echt dankbaar dat dit forum bestaat!!

 

Gr Femca

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