Urfried Geplaatst: 29 oktober 2015 Delen Geplaatst: 29 oktober 2015 Ik heb een vakantieplanning, met alle vakantiedagen in een jaar. Bij het maken van de planning voor een cursus, maak ik op basis van een startdatum, cursusfrequentie en cursusinterval, een nieuwe datum aan. Tijdens het uitvoeren van het script, wil ik kijken of de nieuwe datum een vakantiedag is uit de vakantiedagen tabel. Ik heb geen idee, hoe ik dat moet oplossen in het script. Wie kan mij hierbij helpen?? Urfried Mendes Zoetermeer Quote Link naar reactie
0 Peter Bouma Geplaatst: 29 oktober 2015 Delen Geplaatst: 29 oktober 2015 Zoals zo vaak bij FM zijn er verschillende benaderingen mogelijk. optie 1. Leg een relatie van de planningtabel naar de vakantiedagentabel, van het ene datumveld naar het andere (planning::datum = vakantiedagen::datum). Je kunt nu (vanuit planning) over die relatie kijken of er een vakantiedag zichtbaar is, door te testen op not IsEmpty( vakantiedagen::ID ) of eenvoudigweg not IsEmpty( vakantiedagen::datum ). optie 2. Zet de beoogde planningsdatum in een lokale variabele ($datum bijv.), spring even naar een layout van de vakantiedagen, doe daar Set Error Capture[ On ], doe een Perform Find[] naar vakantiedagen::datum = $datum. Als je iets vindt ( test op Get( FoundCount ) > 0 ), was het een vakantiedag. Onthoud dat resultaat in een andere variabele, doe bijv. Set Variable[ $is_vakantiedag ; Get( FoundCount ) > 0 ], dit levert in de variabele een true of false op, die je later weer kunt gebruiken. Ga terug naar de Original Layout (van planning), en baseer de rest van je procedure op de de waarde van $is_vakantiedag. Voordeel van deze methode: je hoeft er geen extra relatie voor aan te maken in het Relatieschema. Scheelt toch weer een beetje 'rommel'. optie 3. Gebruik een SQL query (vanaf FM12): Set variable[ $is_vakantiedag ; Let( query = "SELECT * FROM vakantiedagen WHERE datum = ?" ; not IsEmpty( ExecuteSQL( query ; "" ; "" ; planning::datum ) ) ) Wees precies met het intypen van de juiste veld- en tabelnaam (eigenlijk TO-naam), ExecuteSQL geeft alleen maar "?" als er typfouten in zitten. Na deze scriptstap zou $is_vakantiedag ook een true of false moeten bevatten, waar je in het vervolg op kunt testen: If( $is_vakantiedag ; ... ; ... ) Voordeel: ook hier heb je geen aparte relatie naar vakantiedagen nodig (net als bij 2), en het is ook nog eens een tamelijk compacte scriptstap, waarvoor je niet van je planningslayout af hoeft. Klein puntje: in deze opzet wordt aangenomen dat je met vakantiedagen feestdagen bedoelt, die voor iedereen gelden. Als het erom gaat te bepalen of sommige deelnemers/cursusleiders/wie dan ook voor de boogde datum toevallig individueel vakantie hebben ingepland, komt het aspect van de persoon waaraan die vakantiedag gekoppeld is er nog bij. HTH, Peter Quote Link naar reactie
0 Urfried Geplaatst: 30 oktober 2015 Auteur Delen Geplaatst: 30 oktober 2015 Peter, Bedankt voor de reactie. Ik ga kijken welke van de drie voor mij het best in te passen valt. Moet nog een hoop leren, wat SCRIPT allemaal kan. m.vr.gr. Urfried Quote Link naar reactie
Vraag
Urfried
Ik heb een vakantieplanning, met alle vakantiedagen in een jaar.
Bij het maken van de planning voor een cursus, maak ik op basis van een startdatum, cursusfrequentie en cursusinterval, een nieuwe datum aan.
Tijdens het uitvoeren van het script, wil ik kijken of de nieuwe datum een vakantiedag is uit de vakantiedagen tabel.
Ik heb geen idee, hoe ik dat moet oplossen in het script.
Wie kan mij hierbij helpen??
Urfried Mendes
Zoetermeer
Link naar reactie
2 antwoorden op deze vraag
Aanbevolen berichten
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.