Ga naar inhoud
  • 0

veld met invoerlijst automatisch invullen


laura23

Vraag

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 naar reactie

7 antwoorden op deze vraag

Aanbevolen berichten

  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie
  • 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 naar reactie

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