Rekenen en Vergelijkingen: verschil tussen versies
(→Voorbeelden) |
(→Voorbeelden) |
||
Regel 161: | Regel 161: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | !Situatie en implementatie |
− | |||
!Voorbeeld | !Voorbeeld | ||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
|Een zaaktype parkeervergunning, waarin vastgelegd wordt wat de prijs van het type vergunning is en het aantal bezoekersvergunningen dat additioneel aangeschaft wordt. In het sjabloon moet de prijs per onderdeel (parkeervergunning en bezoekersvergunning) uitgesplitst weergegeven worden, plus de totaalprijs. | |Een zaaktype parkeervergunning, waarin vastgelegd wordt wat de prijs van het type vergunning is en het aantal bezoekersvergunningen dat additioneel aangeschaft wordt. In het sjabloon moet de prijs per onderdeel (parkeervergunning en bezoekersvergunning) uitgesplitst weergegeven worden, plus de totaalprijs. | ||
− | + | ||
+ | Voor deze implementatie kan het rekenen in magicstrings gebruikt worden, door de prijzentabel alsvolgt op te stellen: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Regel 184: | Regel 184: | ||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
|Bovenstaande is niet geheel realistisch, want het is uiteraard veel wenselijker om de prijzen van de onderdelen in de zaak zelf vast te leggen, alsmede de totaalprijs. | |Bovenstaande is niet geheel realistisch, want het is uiteraard veel wenselijker om de prijzen van de onderdelen in de zaak zelf vast te leggen, alsmede de totaalprijs. | ||
− | + | ||
+ | Voor deze implementatie zijn kenmerken nodig om de prijs in op te slaan, en regels van het type 'Vul waarde in met formule' die de waarde er in plaatsen. | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Regel 215: | Regel 216: | ||
|- style="vertical-align:top;" | |- style="vertical-align:top;" | ||
|Een zaaktype parkeervergunning voor de volgende parkeergebieden: 'Centrum', 'Schil noord', 'Schil west', 'Schil zuid', 'Schil oost'. Voor de schilgebieden moet op het sjabloon een paragraaf voor waarden opgenomen worden. | |Een zaaktype parkeervergunning voor de volgende parkeergebieden: 'Centrum', 'Schil noord', 'Schil west', 'Schil zuid', 'Schil oost'. Voor de schilgebieden moet op het sjabloon een paragraaf voor waarden opgenomen worden. | ||
− | + | ||
+ | Voor deze implementatie kan het beste een "niet gelijk aan"-vergelijking gebruikt worden: | ||
<pre> | <pre> | ||
show_when { parkeergebied != "Centrum" } | show_when { parkeergebied != "Centrum" } |
Versie van 9 nov 2015 om 12:59
Inhoud
Algemeen
Rekenen en vergelijkingen kunnen op meerdere plekken in het systeem gebruikt worden, namelijk:
- Direct in magicstrings
- Regel: Vul waarde in met formule
- Variabele teksten in documentsjablonen
Constanten
De volgende constanten kunnen gebruikt worden bij het rekenen of vergelijken:
Simpele notatie | Complexe notatie | Waarde |
---|---|---|
:pi | constant("pi") | 3.141592653... |
Rekenen
Met formules kan de output aangepast worden door te rekenen met de kenmerkwaarde(n):
- Met elk type kenmerk kan gerekend worden, zolang de waarde een correct getal is
- Waardes die geen getal zijn worden als 0 geïnterpreteerd
- Delen door 0 geeft geen output
Rekentekens
De rekentekens die gebruikt kunnen worden zijn:
Naam | Teken | Voorbeeldformule | Output |
---|---|---|---|
haakjes | () | 6 * ( 2 + 2 ) | 24 |
keer/maal | * | 6 * 2 | 12 |
gedeeld door | / | 6 / 2 | 3 |
plus | + | 6 + 2 | 8 |
min | - | 6 - 2 | 4 |
De volgorde waarin de rekentekens verwerkt worden is alsvolgt: Haakjes wegwerken -> Keer/delen (van links naar rechts), Plus/min (van links naar rechts).
5 + 4 / (3 - attribute.voorbeeld_kenmerk) * attribute.example_kenmerk
5 + 4 / (3 - 1) * 7
5 + 4 / 2 * 7
5 + 2 * 7
5 + 14
19
[[ voorbeeld_kenmerk + 6 / 3 * example_kenmerk ]]
[[ 4 + 6 / 3 * 2 ]]
[[ 4 + 2 * 2]]
[[ 4 + 4 ]]
[[ 8 ]]
8
Afronding
De output wordt alsvolgt afgerond:
Formule | Output formule | Output in valutakenmerk | Output in overige kenmerken |
---|---|---|---|
6 / 3 | 2 | 2,00 | 2.00 |
5 / 3 | 1.6666666667 | 1,67 | 1.67 |
Tip: Gebruik eventueel Kenmerkformatting om de getallen af te ronden op gehele waarden.
Vergelijken
Met vergelijkingen kan gecontroleerd wordt of een waarde aan een bepaalde conditie voldoet. De output is dan "1" als de conditie waar is en "" als de conditie niet waar is. In deze vergelijkingen kunnen ook berekeningen opgenomen worden.
Operators
De operators die gebruikt kunnen worden zijn:
Naam | Teken | Voorbeeld | Antwoord |
---|---|---|---|
is gelijk aan | == | 2 + 2 == 4 | Waar |
is niet gelijk aan | != | 2 + 2 != 5 | Waar |
groter dan | > | 5 > 5 | Niet waar |
kleiner dan | < | 1 < 1.1 | Waar |
groter of gelijk aan | >= | 5 >= 5 | Waar |
kleiner of gelijk aan | <= | 1 <= 1.1 | Waar |
bevat tekst | ~= | "eks" in "tekst" | Waar |
komt voor in | in | 5 in [ 1, 2, 3, 4 ] 5 in array( 1, 2, 3, 4 ) |
Niet waar |