|
|
|
Rekenen met Formdesk |
|
|
In uw formulier kunt u berekeningen opnemen. U kunt dit bijvoorbeeld gebruiken voor het berekenen van een totaalbedrag of een score bij een enquête of quiz-formulier.
Het opnemen van berekeningen in uw formulier hebben wij voor u zeer eenvoudig gemaakt. De manier waarop u een berekening maakt lijkt sterk op de manier zoals u dit in een spreadsheet doet.
Dit document is eigenlijk een formulier gemaakt met Formdesk (zonder verzendknop) waarin, ter demonstratie, berekeningen zijn opgenomen. De voorbeelden zijn interactief, u kunt de invoer dus aanpassen.
Hieronder volgt een uitleg van de berekeningen die u met Formdesk kunt maken en hoe u dat kunt doen.
Er is ook een voorbeeld bestelformulier waarbij achter de '?'-knopjes wordt uitgelegd hoe de berekeningen tot stand zijn gekomen. |
|
|
|
|
Dit document behandelt de volgende onderdelen:
|
|
Waar voeg ik een berekening toe |
U voegt een berekening toe op dezelfde manier als het toevoegen van ieder ander element op het formulier. Voeg een nieuw element toe en kies voor type element "Berekening". |
|
Identifiers |
Elke vraag die u opneemt in uw formulier krijgt van Formdesk een unieke naam toegewezen. Dit noemen we de Identifier van de vraag.
Deze Identifiers gebruikt u in uw berekening om te verwijzen naar een antwoord op een bepaalde vraag. De uitkomst van een berekening zal immers altijd afhangen van ingegeven antwoorden van de gebruiker van uw formulier.
U vermeldt de Identifiers in uw berekening altijd tussen blokhaken.
Naast de vragen in uw formulier hebben ook de berekeningen zelf een Identifier zodat u in uw berekening ook kunt verwijzen naar andere berekeningen. |
|
Rekenen met open vragen |
Stel dat u een product aanbiedt van € 25,--. De gebruiker kan aangeven hoeveel exemplaren deze wil van het product: |
|
|
De vraag om het aantal producten in te voeren hebben we de Identifier product1 gegeven.
De berekening voor het totaal ziet er als volgt uit:
[product1] * 25
U kunt natuurlijk ook een berekening maken met meerdere open vragen: |
|
|
De Identifiers van de invoervelden zijn Veld1 en Veld2.
De berekening ziet er als volgt uit:
[Veld1] + [Veld2] |
|
Subberekeningen |
Zoals genoemd hebben de berekeningen zelf ook een Identifier. Zo kunt u in uw berekening verwijzen naar een andere berekening.
Stel dat u meerdere producten aanbiedt met verschillende prijzen en dat u daarvan het totaal wilt berekenen. U kunt er dan voor kiezen om direct het totaal te berekenen maar u kunt er ook voor kiezen om eerst het subtotaal per product te berekenen om vervolgens de subtotalen bij elkaar op te tellen.
Zonder subberekeningen:
|
|
|
De Identifiers van de vragen zijn respectievelijk Prod1, Prod2 en Prod3.
De berekening ziet er als volgt uit:
( [Prod1] * 25 ) + ( [Prod2] * 14.95 ) + ( [Prod3] * 22.50 )
Met subberekeningen: |
|
|
De Identifiers van de subberekeningen zijn respectievelijk Totaal1, Totaal2 en Totaal3.
De berekening voor het totaalbedrag ziet er als volgt uit:
[Totaal1] + [Totaal2] + [Totaal3] |
|
Voorwaardelijke berekeningen / rekenen met meerkeuze vragen |
U kunt uw berekeningen ook baseren op antwoorden van andere typen dan open vragen, zoals meerkeuze vragen. Dit doet u m.b.v. voorwaardelijke berekeningen.
De notatie van voorwaardelijke berekeningen is als volgt:
IF voorwaarde THEN waarde (ELSE waarde) ENDIF.
De voorwaarde kan een vergelijkingsteken hebben: '=' voor is gelijk aan, '!=' voor ongelijk aan, '<' voor kleiner dan, '>' voor groter dan.
De waarde moet altijd numeriek zijn, een getal dus.
Ja/Nee vraag:
Stel dat u in uw formulier met een Ja/Nee vraag vraagt of men de producten per express verzonden wilt hebben.
Als uw bezoeker dit aanvinkt dient er bij het subtotaal € 10 opgeteld te worden om te komen tot een totaalbedrag. |
|
|
Het subtotaal heeft de Identifier Subtotaal.
De Identifier van de vraag of het product per express verzonden moet worden is Expresse.
De berekening voor het totaalbedrag ziet er als volgt uit:
[sub_totaal] + IF [Expresse] = "Selected" THEN 10 ENDIF
Het gedeelte IF [Expresse] = "Selected" THEN staat voor: als de gebruiker de vraag met Identifier Expresse heeft aangevinkt dan....
Een compactere notatie die u kunt gebruiken is IF [Expresse] THEN ..... Als u juist wilt controleren of de Ja/Nee vraag niet is aangevinkt gebruikt u IF [Expresse] != "Selected" THEN ..... of IF ![Expresse] THEN .....
Meerkeuze, één antwoord vraag met twee opties:
Stel dat u in uw formulier middels een meerkeuze vraag vraagt of men het bestelde product onder rembours verzonden wilt hebben (als eerste optie) of dat men het komt afhalen (als tweede optie). Als uw bezoeker kiest voor de rembours zending dient er € 10 bij het subtotaal opgeteld te worden om te komen tot een totaalbedrag. |
|
|
Het subtotaal heeft de Identifier Subtotaal. De Identifier van de vraag om de verzendmethode is Verzending.
De berekening voor het totaalbedrag ziet er als volgt uit:
[Subtotaal] + IF [Verzending] = 1 THEN 10 ENDIF
Het gedeelte IF [verzendmethode] = 1 THEN staat voor: indien de gebruiker bij de vraag met Identifier Verzending voor de eerste optie heeft gekozen dan ....
U kunt er ook voor kiezen om naar de omschrijving de verwijzen:
[Subtotaal] + IF [Verzending] = "Onder rembours" THEN 10 ENDIF
Het nadeel is dat de berekening dan niet meer werkt als u de omschrijving van de optie wijzigt. Verder in deze handleiding zullen we steeds uitgaan van het gebruik van volgnummers in de voorwaarden. |
|
|
Meerkeuze, één antwoord vraag met meer dan twee opties:
Stel dat u in uw formulier middels een meerkeuzevraag vraagt of men het product onder rembours verzonden wil hebben (€ 5), per express (€ 10) of dat men het product zelf komt afhalen (kosteloos).
Als uw bezoeker één van de eerste twee opties kiest dienen de bijbehorende kosten bij het subtotaal te worden opgeteld om te komen tot een totaalbedrag: |
|
|
Het subtotaal heeft de Identifier Subtotaal.
De Identifier van de meerkeuzevraag is Verzending.
De berekening voor het totaalbedrag ziet er als volgt uit:
[Subtotaal] + IF [Verzending] = 1 THEN 5 ENDIF + IF [Verzending] = 2 THEN 10 ENDIF
Meerkeuze, meer antwoorden vraag:
Stel dat u in uw formulier middels een meerkeuzevraag extra's op het gekozen product aanbiedt. U wilt een totaalbedrag van de gekozen optie tonen alsmede het aantal geselecteerde extra's: |
|
|
De Identifier voor de meerkeuzevraag is Extras.
De berekening voor het totaalbedrag ziet er als volgt uit:
IF [extras] = 1 THEN 40 ENDIF + IF [extras] = 2 THEN 55 ENDIF + IF [extras] = 3 THEN 35 ENDIF + IF [extras] = 4 THEN 60 ENDIF
De berekening voor het aantal geselecteerde extra's ziet er als volgt uit:
IF [extras] = 1 THEN 1 ENDIF + IF [extras] = 2 THEN 1 ENDIF + IF [extras] = 3 THEN 1 ENDIF + IF [extras] = 4 THEN 1 ENDIF |
|
Keuzelijsten:
Met een keuzelijst rekent u ook weer op dezelfde manier als met de andere meerkeuzevragen.
Gebruiken we hetzelfde voorbeeld van de Meerkeuze, één antwoordvraag dan blijft de berekening ook exact hetzelfde. |
|
|
Het subtotaal heeft de Identifier Subtotaal.
De Identifier van de keuzelijst is Verzending.
De berekening voor het totaalbedrag ziet er als volgt uit:
[Subtotaal] + IF [Verzending] = 1 THEN 5 ENDIF + IF [Verzending] = 2 THEN 10 ENDIF |
|
Gebruik van 'AND' en 'OR':
Indien de uitkomst van een berekening afhangt van een combinatie van antwoorden kunt u in de voorwaarde (dus tussen de IF en de THEN) gebruik maken van de AND en OR.
Stel dat u in uw formulier met een meerkeuzevraag vraagt hoe men het product verzonden wenst te hebben. Indien de bestelling echter € 100 of meer bedraagt worden er geen verzendkosten in rekening gebracht. |
|
|
Het subtotaal heeft de Identifier Subtotaal.
De Identifier van de meerkeuzevraag is Verzending.
De berekening voor de verzendkosten ziet er als volgt uit:
IF [Verzending] = 2 AND [sub_totaal] < 100 THEN 5 ENDIF + IF [Verzending] = 3 AND [Subtotaal] < 100 THEN 10 ENDIF |
|
Meerkeuze vragen waarbij de op te tellen waarden in de opties staan:
Enkele berekeningen van bovenstaande voorbeelden hadden eigenlijk makkelijker gekund.
Indien de op te tellen waarden in de opties genoemd worden kunt u voor de berekening volstaan met alleen de Identifier. Formdesk zoekt dan zelf de waarden uit de opties en telt ze bij elkaar op.
Stel dat u in uw formulier producten aanbiedt waarbij u de bedragen in de opties noemt. |
|
|
|
|
|
|
|
|
De Identifier van de meerkeuzevraag is Fruit.
Voor de berekening kunnen we volstaan met de Identifier van de meerkeuze vraag:
[Fruit]
Het is hierbij van belang dat het bedrag de eerste numerieke waarde van de keuze-optie is. Bij de optie '12 appels voor € 2.50' zou Formdesk voor de berekening dus uitgaan van 12 i.p.v. 2.50. |
|
Rekenen met datums en tijden |
Datums
U kunt het aantal dagen dat tussen twee ingevulde datums ligt eenvoudig berekenen door de twee datums van elkaar af te trekken: |
|
|
De Identifier van de begindatum is DateStart en van de einddatum DateEnd.
De berekening voor het aantal dagen is:
[DateEnd] - [DateStart] |
|
U kunt met een vaste datum rekenen door een datumveld toe te voegen die u reeds een standaardwaarde geeft. Deze kunt u verbergen voor de bezoeker van uw formulier. |
|
|
De Identifier van de in te vullen datum is Date1. Voor de berekening hebben we een datumveld met de Identifier Millennium toegevoegd. Deze hebben we de standaardwaarde 01-01-2000 gegeven. U ziet dit datumveld een aantal regels hieronder staan. Normaal gesproken zouden we deze verbergen, voor de duidelijkheid van deze uitleg hebben we dat niet gedaan.
De berekening is als volgt:
[Date1] - [Millennium] |
|
Op dezelfde manier kunt u met de datum van vandaag rekenen. U voegt een datumveld toe die u standaard op vandaag zet. Ook deze kunt u natuurlijk verbergen. |
|
|
De functie Today() geeft de datum van vandaag. De Identifier van het datumveld die standaard op 01-01-2000 staat is Millennium.
De berekening is als volgt:
Today() - [Millennium] |
|
|
|
|
|
<- TIP: U kunt dit veld verbergen voor uw gebruikers ! |
|
|
U kunt ook voorwaardelijk rekenen met datums. Bijvoorbeeld voor het berekenen van de prijs van een toegangskaart van 13,50 euro, die voor 65+ en voor kinderen t/m 9 jaar 10 euro kost: |
|
|
|
|
|
|
|
|
|
|
De Identifier van de vraag om de geboortedatum is Geboorte.
De berekening van de leeftijd is als volgt:
FLOOR( (Today() - [Geboorte]) / 365.25)
Door het aantal dagen te delen door 365.25 en deze naar beneden af te ronden komen we op de leeftijd.
Om te voorkomen dat er een onwerkelijk hoge leeftijd staat als er nog geen datum is ingevuld dient gecheckt te worden of het veld niet leeg is en anders de leeftijd op 0 te zetten. De berekening wordt dan als volgt:
IF [Geboorte] = "" THEN 0 ELSE FLOOR( (Today() - [Geboorte]) / 365.25) ENDIF
De Identifier van de berekening van de leeftijd is age.
De berekening voor de prijs van de toegangskaart is als volgt:
IF [age] > 64 OR [age] < 10 THEN 10 ELSE 13.50 ENDIF |
|
|
Tijden
U kunt het aantal minuten dat tussen twee ingevulde tijden ligt eenvoudig berekenen door de twee tijden van elkaar af te trekken: |
|
|
De Identifier van de starttijd is TimeStart en van de eindtijd TimeEnd.
De berekening voor het aantal minuten is:
[TimeEnd] - [TimeStart] |
|
|
|
Rekenfuncties |
Naast de basis operatoren voor optellen (+), aftrekken (-), vermenigvuldigen (*) en delen (/) kunt u, voor de geavanceerdere berekeningen, in uw rekenformule de onderstaande functies gebruiken.
|
Ceil
Rondt een getal met decimalen altijd af naar het gehele getal erboven. |
|
|
Ceil( [waarde] ) |
|
Floor
Rondt een getal met decimalen altijd af naar het gehele getal eronder. |
|
|
Floor( [waarde] ) |
|
Round
Rondt een getal met decimalen af naar het dichtsgelegen gehele getal (is normale rekenkundige afronding). |
|
|
Round( [waarde] ) |
|
Sqrt
Geeft de wortel van een getal. |
|
|
Sqrt( [waarde] ) |
|
Pow
Hiermee kunt u machtsverheffen op een getal. |
|
|
Pow( [waarde1], [waarde2] ) |
|
Min
Geeft het laagste getal van een reeks. |
|
|
Min( [waarde1], [Waarde2], [Waarde3] ) |
|
Max
Geeft het hoogste getal van een reeks. |
|
|
|
Random() * 100 |
|
Year, Month en Day
De functies Year(), Month() en Day() geven respectievelijk het jaar, de maand en de dag van een datum invoer. Als u de parameter weg laat dan wordt de datum van vandaag gebruikt. |
|
|
Year( [waarde] )
Month( [waarde] )
Day( [waarde] ) |
|
Today()
De functie Today() resulteert in de Julian dagnummer (en tijd) van vandaag. Dit geldt ook voor datumvelden waarnaar u verwijst binnen een berekening. |
|
|
|
Inzicht verwijzingen |
U kunt de verwijzingen van berekeningen naar antwoorden van andere elementen inzichtelijk maken binnen het tabblad Vragen. Via het menu van één of meerdere geselecteerde elementen kiest u voor de optie 'Toon verwijzingen' of, om de verwijzingen tussen alle elementen te zien, klikt u in de werkbalk op het icon voor alle verwijzingen. Met blauwe pijlen wordt dan getoond welke berekening naar welk element verwijst. |
|
|
|
|
|
Opmerkingen |
U kunt berekeningen ook onzichtbaar maken, dit is met name handig voor subberekeningen. U kunt deze berekeningen dan alsnog tonen in de (e-mail)berichten na verzenden.
Houd er rekening mee dat een kwaadwillende met enige technische kennis de uitkomst van de berekening kan beïnvloeden. Mocht uw gebruiker hier eventueel reden voor hebben controleert u dan altijd zelf nog de berekening bij ontvangst. U moet berekeningen zien als een hulpmiddel voor de invuller. |
|
|
|
|
|
|
|