Jump to content
  • 0

veld met invoerlijst automatisch invullen


laura23

Question

Hoi allemaal,

 

Ik heb een vraag over het automatisch invullen van een veld met een invoerlijst (ik heb van dit veld een Groep selectievakjes gemaakt). In dit veld staan alle academische jaren, bv 2007/2008 en 2008/2009. Nu wil ik het zo maken dat deze automatisch ingevuld moeten worden als de data die gelden voor een contract binnen het betreffende academische jaar worden ingetypt. Dus: als de begindatum van een contract 1 oktober 2007 is en de einddatum 1 juni 2008, dan moet 2007/2008 aangekruist worden. Dit gaat goed, geen probleem.

 

Maar ook: als de begindatum van een contract 1 oktober 2007 is en de einddatum 1 juni 2009, dan moet 2007/2008 EN 2008/2009 aangekruist worden. En dit lukt dus niet. Hoe krijg ik het zo dat dan beide vakjes aangekruist worden?

 

Ik was zo begonnen:

 

If ( MoU|contract|begin|datum > Date ( 8 ; 31 ; 2007 ) and MoU|contract|begin|datum < Date ( 9 ; 1 ; 2008 );

Case ( MoU|contract|eind|datum > Date ( 8 ; 31 ; 2007 ) and MoU|contract|eind|datum < Date ( 9 ; 1 ; 2008); "2007/2008";

MoU|contract|eind|datum > Date ( 8 ; 31 ; 2008 ) and MoU|contract|eind|datum < Date ( 9 ; 1 ; 2009); "2007/2008" and "2008/2009"; "" ) ; "")

 

Er gaat dus iets verkeerd in het stuk dat ik rood gemaakt heb.

 

Is dit op te lossen? Dank jullie wel alvast!

 

Groeten, Laura

Link to comment

7 answers to this question

Recommended Posts

  • 0

Het is een beetje lastig om meerdere checkboxen tegelijk te laten aankruisen door 1 calculatie, tenzij je een plugin gebruikt die een script aanroept.

Maak daarom voor elk academisch jaar een veld met 1 checkbox.

Elk veld krijgt een calculatie.

Check wel even voor gebruik.

// Academisch jaar 2007-2008   
Case ( 
(MoU|contract|begin|datum > Date (8;31;2007) and 
 MoU|contract|begin|datum < Date(9;1;2008))  
 or
(MoU|contract|eind|datum  > Date (8;31;2007) and 
 MoU|contract|eind|datum  < Date (9;1;2008));
 "2007-2008"; ""
   )   

 

gr,

Arnoud

Link to comment
  • 0

Voordat je aan het werk gaat zou ik nog even een dag of wat wachten of er forumleden zijn met andere oplossingen.

Trouwens je kan toch gewoon die veldjes/checkboxjes naast je huidige

checkboxveld zetten, dan zie je gelijk of het klopt.

Daarna kan je het veld gewoon verwijderen.

Er is dus nauwelijks tijdverlies.

Link to comment
  • 0

Technisch zijn checkboxjes niet meer dan een weergave vorm.

De inhoud van het veld wordt gevuld met door return gescheiden waarden.

 

Als je dus meer dan 1 waarde in je veld wilt hebben dat door de checkbox weergave moet worden herkend is het voldoende om de waarden door een return gescheiden in het veld te plaatsen.

 

Dat kan uitstekend door middel van een script.

Let er wel op dat het toevoegen van een checkbox waarde aan een veld waar als andere gegevens in staan, moet worden gedaan door de nieuwe waarde samen met de bestaande in het veld te zetten. Alleen de nieuwe waarde zetten overschrijft de bestaande.

 

rmw

Link to comment
  • 0

Vermits je een begin en eind datum hebt, kun je daaruit de (mogelijke) tussenliggende jaren halen.

Dat moet dan wel met een recursief Custom Function, iets in de aard van:

 

If( 
GetAsNumber ( end) > GetAsNumber ( start ); 
GetAsNumber( start )  & "¶" & CFName ( GetAsNumber ( start ) + 1; end); 
GetAsNumber ( start )
)

 

Je moet wel eerst uit de twee datum velden enkel het jaar halen.

Dat kan gewoon met de Year() functie.

 

'end' wordt het 'eindjaar' en 'start' wordt het 'beginjaar' in de CF.

 

Die ¶ lijst kun je dan hervormen door er een 'dubbele' waardelijst van te maken en die te koppelen aan je bestaande valuelist. Je kunt hiervoor een recursive calculation gebruiken of een custom function.

 

Nu zullen de checkboxen automatisch ingevuld worden.

 

Drawback: je veld is een berekeningsveld geworden dus kun je geen veranderingen aanbrengen, tenzij je de datums verandert.

 

Voordeel: alles berust op native FileMaker berekeningen, je hebt geen plugin nodig en geen script.

Je 'hard code' geen gegevens in een berekening.

 

Indien nodig posten we wel een voorbeeldje.

Link to comment
  • 0
... maar de manier waarop is erg ingewikkeld ...

Je volgt gewoon de logica van de gegevens die je hebt tot het resultaat dat je wenst. Onderweg gebruik je enkele door FM ter beschikking gestelde tools.

 

Gegevens: 2 datum velden

Gewenst: lijst range van jaren tussen twee gegeven datumvelden op jaarbasis.

 

1. Uit de twee datumvelden haal je enkel de jaren. (parsing)

2. Indien nodig maak je een lijst van de tussenliggende jaren. (recursief CF)

3. Het tweede jaar uit de lijst plaats je op dezelfde regel als het eerste

Het laatste van de vorige regel gebruik je als eerste van de volgende

enz. (recursief CF)

4. Het resultaat breng je in een veld dat je formateer als checkbox.

5. Indien je enkel een 'visueel' resultaat nodig hebt, kun je het ook met enkel een recursieve berekening en heb je geen CF nodig.

 

Sarai heeft iets voor je in mekaar gestoken als visuele hulp.

Misschien kan dit je helpen.

Pas de twee datums aan en kijk of dit is wat je nodig hebt.

Als je range verder gaat dan 2015 moet je wel de valuelist aanpassen en mogelijk je velden groter maken.

AutoCheck.fp7

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