Rekenen en Vergelijkingen Samenvatting: verschil tussen versies

Uit ZaaksysteemWiki
Ga naar: navigatie, zoeken
(Voorbeelden)
(Troubleshooting)
 
(39 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 2: Regel 2:
  
 
= Algemeen =
 
= Algemeen =
Rekenen en vergelijkingen met waarden van [http://wiki.zaaksysteem.nl/Catalogus_kenmerk Kenmerken] kunnen op meerdere plekken in het systeem gebruikt worden, namelijk:
+
Zie ook de volgende overzichten:
 +
<ul>
 +
<li>[[systeemkenmerken_overzicht|Systeemkenmerken]]</li>
 +
<li>[[Kenmerktypen_overzicht|Kenmerktypen]]</li>
 +
<li>[[Kenmerkformatting_overzicht|Kenmerkformatting]]</li>
 +
</ul>
 +
 
 +
Dit is een samenvatting van [[Rekenen_en_Vergelijkingen|Rekenen en vergelijken uitgebreid]]. Zie de uitgebreide documentatie voor meer voorbeelden en complexere situaties.
  
 +
Rekenen en vergelijkingen met waarden van [[Catalogus_kenmerk|Kenmerken]] kunnen op meerdere plekken in het systeem gebruikt worden, namelijk:
 
<ul>
 
<ul>
 
<li>Direct in magicstrings</li>
 
<li>Direct in magicstrings</li>
<li>[http://wiki.zaaksysteem.nl/Zaaktypebeheer_Regels#Vul_waarde_in_met_formule Regel: Vul waarde in met formule]</li>
+
<li>[[Zaaktypebeheer_Regels#Vul_waarde_in_met_formule|Regel: Vul waarde in met formule]]</li>
<li>[http://wiki.zaaksysteem.nl/Catalogus_documentsjabloon#Variabele_teksten Variabele teksten] in documentsjablonen</li>
+
<li>[[Catalogus_documentsjabloon#Variabele_teksten|Variabele teksten]] in documentsjablonen</li>
 
</ul>
 
</ul>
 
=== Complexiteit ===
 
Deze functionaliteit maakt het mogelijk om logica te gebruiken in magicstrings, sjablonen en de regel 'vul waarde in'. De bouwblokken an sich zijn op het basisniveau van de logica, en zijn daarmee makkelijk te gebruiken en begrijpen. Tegelijkertijd betekent dit dat met deze bouwblokken complexere logica gebouwd kan worden, en dit kan tot in het theoretisch oneindige doorgevoerd worden. Hierbij moeten beheerders waken voor toenemende kosten voor beheer van deze logica en dit niet uit het oog verliezen bij het implementeren of uitbreiden van complexere logica.
 
 
=== Schrijfwijze ===
 
Eenvoudige inrichtingen zijn makkelijk om te lezen, maar met complexere inrichtingen wordt het al gauw moeilijk om te overzien wat er nu precies ingericht is. Goed leesbare scripts zijn belangrijk voor de toekomstige zelf en collega's. De leesbaarheid van scripts zijn niet enkel belangrijk voor de tijdbesparing die behaald wordt in het begrijpen of opsporen van fouten. Goed leesbare scripts zijn ook heel begrijpelijk en dat stelt de beheerder in staat om op een hoger abstractieniveau naar het script te kijken, verbeteringen aan te brengen en/of complexere situaties te maken (mits nodig).
 
 
Een script kan leesbaarder gemaakt worden met onder andere correct spatiegebruik. Spaties zijn enkel van belang voor de mens; voor het systeem zijn de volgende twee scripts identiek, maar de tweede leest een stuk fijner.
 
<pre>
 
show_when{or(and(voorbeeld_kenmerk*8==40,example_kenmerk=="Appel"),bbv_akkoord=="Niet akkoord")}
 
</pre>
 
<pre>
 
show_when { or( bbv_akkoord == "Niet akkoord", and( voorbeeld_kenmerk * 8 == 40 , example_kenmerk == "Appel" ) ) }
 
</pre>
 
In het tweede script is ook de and() naar het einde verplaatst. Op deze manier is het minder verwarrend welke voorwaarden nu wel binnen de AND vallen, en welke enkel binnen de OR vallen.
 
 
Als meerdere medewerkers scripts maken, dan is het verstandig om een 'huisstijl' te ontwikkelen, zodat elkanders scripts leesbaarder zijn. Het is ook aan te raden om elkaars scripts goed te keuren alvorens deze in productie te nemen, zodat de collega die er met een frisse blik naar kijkt eventuele fouten kan zien of verbeteringen kan voorstellen.
 
 
= Constanten =
 
De volgende constanten kunnen gebruikt worden bij het rekenen of vergelijken:
 
{| class="wikitable" style="text-align:center;"
 
|-
 
!style="width:150px;"|Simpele notatie
 
!style="width:150px;"|Complexe notatie
 
!style="width:150px;"|Waarde
 
|-
 
|:pi
 
|constant("pi")
 
|3.141592653...
 
|}
 
  
 
= Rekenen =
 
= Rekenen =
Met formules kan de output aangepast worden door te rekenen met de kenmerkwaarde(n):
+
Formules kunnen gebruikt worden bij regels van het type 'vul waarde in met formule' en in vergelijkingen. De rekentekens die hierbij gebruikt kunnen worden zijn:
<ul>
 
<li>Met elk type kenmerk kan gerekend worden, zolang de waarde een correct getal is</li>
 
<li>Waardes die geen getal zijn worden als 0 geïnterpreteerd</li>
 
<li>Delen door 0 geeft geen output</li>
 
</ul>
 
  
=== Rekentekens ===
 
De rekentekens die gebruikt kunnen worden zijn:
 
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
 
|-
 
|-
!style="width: 125px;"|Naam
+
!style="width: 75px;"|Naam
!style="width: 125px;"|Teken
+
!style="width: 75px;"|Teken
!style="width: 125px;"|Voorbeeld
 
!style="width: 125px;"|Output
 
!style="width: 200px;"|Volgorde
 
 
|-
 
|-
|haakjes
+
|Haakjes:
 
|()
 
|()
|6 * ( 2 + 2 )
 
|24
 
|Als eerste
 
 
|-
 
|-
|keer/maal
+
|Keer/maal:
 
|*
 
|*
|6 * 2
 
|12
 
|rowspan="2"|Na haakjes<br>Van links naar rechts
 
 
|-
 
|-
|gedeeld door
+
|Gedeeld door:
 
|/
 
|/
|6 / 2
 
|3
 
 
|-
 
|-
|plus
+
|Plus:
 
|<nowiki>+</nowiki>
 
|<nowiki>+</nowiki>
|6 + 2
 
|8
 
|rowspan="2"|Na keer/gedeeld door<br>Van links naar rechts
 
 
|-
 
|-
|min
+
|Min:
 
|<nowiki>-</nowiki>
 
|<nowiki>-</nowiki>
|6 - 2
 
|4
 
 
|}
 
|}
 +
In regels:
 +
<pre>
 +
voorbeeld_kenmerk * 5
 +
5 * ( voorbeeld_kenmerk - 2)
 +
</pre>
 +
In zttscript:
 +
<pre>
 +
show_when { voorbeeld_kenmerk * 5 == 20 }
 +
show_when { 5 * ( voorbeeld_kenmerk - 2 ) == 20 }
 +
</pre>
  
=== Voorbeelden ===
+
Zie voor meer informatie en complexere situaties: [[Rekenen_en_Vergelijkingen#Rekenen|Rekenen uitgebreid]].
Onderstaand drie voorbeelden voor rekenen; één voor elke locatie waarin het toegepast kan worden. De voorbeelden worden stap voor stap uitgewerkt, waarbij telkens het onderstreepte gedeelte aangeeft welk gedeelte van de formule in de bijbehorende stap verwerkt wordt.
 
 
 
{| class="wikitable"
 
|-
 
!width="100px"|Stap
 
!width="450px"|Magicstrings
 
!width="450px"|Vul waarde in met formule
 
!width="450px"|zttscript
 
|-
 
|
 
Stap 1<br>
 
Stap 2<br>
 
Stap 3<br>
 
Stap 4<br>
 
Stap 5<br>
 
Resultaat
 
|
 
[[ <u>voorbeeld_kenmerk</u> + 6 / 3 * <u>example_kenmerk</u> ]]<br>
 
[[ 4 + <u>6 / 3</u> * 2 ]]<br>
 
[[ 4 + <u>2 * 2</u>]]<br>
 
[[ <u>4 + 4</u> ]]<br>
 
<nowiki>[[ 8 ]]</nowiki><br>
 
8
 
|
 
5 + 4 / (3 - <u>attribute.voorbeeld_kenmerk</u>) * <u>attribute.example_kenmerk</u><br>
 
5 + 4 / <u>(3 - 1)</u> * 7<br>
 
5 + <u>4 / 2</u> * 7<br>
 
5 + <u>2 * 7</u><br>
 
<u>5 + 14</u><br>
 
19
 
|
 
show_when { <u>voorbeeld_kenmerk</u> == 6 * (5 - <u>example_kenmerk</u>) }<br>
 
show_when { 3 == 6 * <u>(5 - 2)</u> }<br>
 
show_when { 3 == <u>6 * 3</u> }<br>
 
show_when { <u>3 == 18</u> }<br>
 
<u>show_when { niet waar }</u><br>
 
don't show
 
|}
 
 
 
=== Afronding ===
 
De output wordt alsvolgt afgerond:
 
{| class="wikitable"
 
|- style="vertical-align:top;"
 
!style="width:100px;" rowspan="2"|Formule
 
!style="width:450px;" rowspan="2"|Magicstring
 
!style="width:450px;" colspan="2"|Vul waarde in met formule
 
!style="width:450px;" rowspan="2"|zttscript
 
|-
 
!Valutakenmerk
 
!Overige kenmerken
 
|- style="text-align: right;"
 
|style="text-align: center;"|6 / 3
 
|2
 
|2,00
 
|2.00
 
|2
 
|- style="text-align: right;"
 
|style="text-align: center;"|5 / 3
 
|1.6666666667
 
|1,67
 
|1.67
 
|1.6666666667
 
|}
 
 
 
Tip: Gebruik eventueel [http://wiki.zaaksysteem.nl/Kenmerkformatting_overzicht Kenmerkformatting] om de getallen af te ronden op gehele waarden.
 
  
 
= Vergelijken =
 
= 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.
+
Met vergelijkingen kan gecontroleerd wordt of een waarde aan een bepaalde conditie voldoet. In deze vergelijkingen kunnen ook berekeningen opgenomen worden.
  
 
=== Operators ===
 
=== Operators ===
De operators die gebruikt kunnen worden zijn:
+
{|
 +
|- style="vertical-align:top;"
 +
|
 +
De operators die gebruikt worden<br>
 +
voor kenmerken met één waarde:
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
 
|-
 
|-
!style="width: 175px;"|Naam
+
!style="width: 150px;"|Naam
!style="width: 175px;"|Teken
+
!style="width: 75px;"|Teken
!style="width: 175px;"|Voorbeeld
 
!style="width: 175px;"|Antwoord
 
!style="width: 175px;"|Kenmerktype
 
 
|-
 
|-
 
|is gelijk aan
 
|is gelijk aan
 
|<nowiki>==</nowiki>
 
|<nowiki>==</nowiki>
|2 + 2 == 4
 
|Waar
 
|Alle
 
 
|-
 
|-
 
|is niet gelijk aan
 
|is niet gelijk aan
 
|<nowiki>!=</nowiki>
 
|<nowiki>!=</nowiki>
|2 + 2 != 5
 
|Waar
 
|Alle
 
 
|-
 
|-
 
|groter dan
 
|groter dan
 
|<nowiki>></nowiki>
 
|<nowiki>></nowiki>
|5 > 5
 
|Niet waar
 
|Alle
 
 
|-
 
|-
 
|kleiner dan
 
|kleiner dan
 
|<nowiki><</nowiki>
 
|<nowiki><</nowiki>
|1 < 1.1
 
|Waar
 
|Alle
 
 
|-
 
|-
 
|groter of gelijk aan
 
|groter of gelijk aan
 
|<nowiki>>=</nowiki>
 
|<nowiki>>=</nowiki>
|5 >= 5
 
|Waar
 
|Alle
 
 
|-
 
|-
 
|kleiner of gelijk aan
 
|kleiner of gelijk aan
 
|<nowiki><=</nowiki>
 
|<nowiki><=</nowiki>
|1 <= 1.1
 
|Waar
 
|Alle
 
 
|-
 
|-
 
|bevat tekst
 
|bevat tekst
 
|<nowiki>~=</nowiki>
 
|<nowiki>~=</nowiki>
|"eks" in "tekst"
+
|}
|Waar
+
|
|Alle
+
De operator die gebruikt wordt voor
 +
<br>kenmerken met meerdere waarden:
 +
{| class="wikitable" style="text-align:center;"
 +
|-
 +
!style="width: 150px;"|Naam
 +
!style="width: 75px;"|Teken
 
|-
 
|-
 
|komt voor in
 
|komt voor in
 
|<nowiki>in</nowiki>
 
|<nowiki>in</nowiki>
|5 in [ 1, 2, 3, 4 ]<br>
 
5 in array( 1, 2, 3, 4 )
 
|Niet waar
 
|Enkelvoudige keuze<br>
 
Keuzelijst<br>
 
Meervoudige keuze
 
 
|}
 
|}
===== Keuze kenmerken =====
+
|-
De output van kenmerken van het type 'Enkelvoudige keuze', 'Meervoudige keuze' en 'Keuzelijst' zijn oorspronkelijk van het type [https://en.wikipedia.org/wiki/Array_data_type Array]. De 'in'-operator kan gebruikt worden om te zien of een specifieke waarde overeenkomt met één van de waarden die deze kenmerken bevatten. Omdat dit vrij omslachtig is voor de typen 'Enkelvoudige keuze' en 'Keuzelijst' die maar één waarde kunnen bevatten worden deze waarde omgezet naar het type [https://en.wikipedia.org/wiki/String_(computer_science) String]. Voor consistentie gebeurt dit ook met het kenmerktype 'Meervoudige keuze' waarbij waarden gescheiden worden door komma+spatie.
+
|<pre>show_when { voorbeeld_kenmerk == "tekst" }</pre>
 +
|<pre>show_when { "tekst" in meervoudig_kenmerk }</pre>
 +
|}
 +
 
 +
=== Functies ===
 +
De AND functie is 'waar' als alle voorwaarden 'waar' zijn, terwijl de OR functie 'waar' is als minimaal één van de voorwaarden 'waar' is. De voorwaarden worden gescheiden door een komma.
 +
<pre>
 +
show_when { and( voorbeeld_kenmerk == "Appel", example_kenmerk == "Peer" ) }
 +
show_when {  or( voorbeeld_kenmerk == "Appel", example_kenmerk == "Peer" ) }
 +
</pre>
 +
De NOT functie is 'waar' als de voorwaarde 'niet waar' is, en omgekeerd, is 'niet waar' als de voorwaarde 'waar' is.
 +
<pre>
 +
show_when { not( voorbeeld_kenmerk == "Appel" ) }
 +
</pre>
  
Samenvattend:
+
Zie voor meer informatie en complexere situaties: [[Rekenen_en_Vergelijkingen#Vergelijken|Vergelijken uitgebreid]].
<ul>
 
<li>Gebruik de 'in'-operator enkel voor 'meervoudige keuze'-kenmerken</li>
 
<li>Gebruik alle andere operators voor alle andere kenmerktypen</li>
 
</ul>
 
  
Onderstaand is de exacte werking van de kenmerktypen en operators beschreven. Hier staan voor de volledigheid ook voorbeelden tussen die niet gebruikt zouden moeten worden, zodat aan de hand van dit gehele plaatje het beter te begrijpen is hoe en waarom de aanbevolen inrichtingen werken.
+
= Troubleshooting =
 +
Veel voorkomende foutjes zijn:
  
{| class="wikitable" style="text-align:center;" width="100%"
+
{| class="wikitable" style="text-align:center"
|+ style="text-align:left;"|Voorbeelden tekstveld (en overige kenmerken)
 
 
|-
 
|-
!style="width:  75px;"|
+
!Omschrijving
!style="width: 125px;"|Kenmerktype
+
!width="50px"|
!style="width: 200px;"|Waarde (array)
+
!width="600px"|Voorbeeld
!style="width: 200px;"|Waarde (string)
+
|-
!style="width: 400px;"|Vergelijking
+
|rowspan="2" style="text-align:left"|Script heet niet 'zttscript'
!style="width: 75px;"|Uitkomst
+
|Fout
!                    |Toelichting
+
|JavaScript
|- style="background-color: #ccffcc;"
+
|-
|Aanbevolen
+
|Goed
|Tekstveld
+
|zttscript
|
+
|-
|"Appel"
+
|rowspan="2" style="text-align:left"|Kijken of het kenmerk voorkomt in de waarde, ipv andersom
|show_when { tekstveld == "Appel" }
+
|Fout
|Waar
+
|show_when { magic_string in "waarde" }
|Controleer of de waarde gelijk is aan X
+
|-
|- style="background-color: #ccffcc;"
+
|Goed
|Aanbevolen
+
|show_when { "waarde" in magic_string }
|Tekstveld
+
 
|
+
|-
|"Appel"
+
|rowspan="2" style="text-align:left"|Aanhalingstekens uit Microsoft Word gebruiken
|show_when { tekstveld ~= "ppe" }
+
|Fout
|Waar
+
|show_when { magic_string == “waarde” }
|Controleer of de waarde een stuk tekst bevat dat gelijk is aan X
+
|-
|- style="color: gray;"
+
|Goed
|
+
|show_when { magic_string == "waarde" }
|Tekstveld
 
|
 
|"Appel"
 
|show_when { "Appel" in tekstveld }
 
|Niet waar
 
|De 'in'-operator kan niet gebruikt worden voor dit kenmerktype
 
|}
 
  
{| class="wikitable" style="text-align:center;" width="100%"
 
|+ style="text-align:left;"|Voorbeelden enkelvoudige keuze en keuzelijst
 
 
|-
 
|-
!style="width:  75px;"|
+
|rowspan="2" style="text-align:left"|Magicstring met blokhaken geschreven
!style="width: 125px;"|Kenmerktype
+
|Fout
!style="width: 200px;"|Waarde (array)
+
|<nowiki>show_when { [[magic_string]] == "waarde" }</nowiki>
!style="width: 200px;"|Waarde (string)
+
|-
!style="width: 400px;"|Vergelijking
+
|Goed
!style="width: 75px;"|Uitkomst
+
|<nowiki>show_when { magic_string == "waarde" }</nowiki>
!                    |Toelichting
 
|- style="background-color: #ccffcc;"
 
|Aanbevolen
 
|Enkelvoudige keuze
 
|[ "Appel" ]
 
|"Appel"
 
|show_when { enkelvoudige_keuze == "Appel" }
 
|Waar
 
|Controleer of de waarde gelijk is aan X
 
|- style="background-color: #ccffcc;"
 
|Aanbevolen
 
|Enkelvoudige keuze
 
|[ "Appel" ]
 
|"Appel"
 
|show_when { enkelvoudige_keuze ~= "ppe" }
 
|Waar
 
|Controleer of de waarde een stuk tekst bevat dat gelijk is aan X
 
|- style="color: gray;"
 
|
 
|Enkelvoudige keuze
 
|[ "Appel" ]
 
|"Appel"
 
|show_when { "Appel" in enkelvoudige_keuze }
 
|Waar
 
|Hier kan beter de == operator voor gebruikt worden.
 
|}
 
  
{| class="wikitable" style="text-align:center;" width="100%"
 
|+ style="text-align:left;"|Voorbeelden meervoudige keuze
 
 
|-
 
|-
!style="width: 75px;"|
+
|rowspan="2" style="text-align:left"|Niet letten op hoofdlettergevoeligheid
!style="width: 125px;"|Kenmerktype
+
|Fout
!style="width: 200px;"|Waarde (array)
+
|show_when { magic_string == "Waarde" }
!style="width: 200px;"|Waarde (string)
+
|-
!style="width: 400px;"|Vergelijking
+
|Goed
!style="width: 75px;"|Uitkomst
+
|show_when { magic_string == "waarde" }
!                    |Toelichting
+
|-
|- style="color: gray;"
+
|rowspan="2" style="text-align:left"|Enkelvoudige operator gebruikt voor meervoudig kenmerk<br>Let op: Dit werkt wel, maar is enkel 'waar' wanneer er niet meerdere opties aangevinkt zijn
 +
|Fout
 +
|show_when { "waarde" == meervoudige_keuze }
 +
|-
 +
|Goed
 +
|show_when { "waarde" in meervoudige_keuze }
 +
|-
 +
|rowspan="2" style="text-align:left"|
 +
|Fout
 
|
 
|
|Meervoudige keuze
+
|-
|[ "Appel", "Banaan", "Citroen" ]
+
|Goed
|"Appel, Banaan, Citroen"
 
|show_when { meervoudige_keuze == "Appel" }
 
|Niet waar
 
|"Appel" is niet gelijk aan "Appel, Banaan, Citroen"
 
|- style="background-color: #ccffcc;"
 
|Aanbevolen
 
|Meervoudige keuze
 
|[ "Appel", "Banaan", "Citroen" ]
 
|"Appel, Banaan, Citroen"
 
|show_when { meervoudige_keuze == "Appel, Banaan, Citroen" }
 
|Waar
 
|Controleer of het kenmerk exact de juiste invulling heeft.
 
|- style="color: gray;"
 
 
|
 
|
|Meervoudige keuze
+
|-
|[ "Appel", "Banaan", "Citroen" ]
+
|rowspan="2" style="text-align:left"|
|"Appel, Banaan, Citroen"
+
|Fout
|show_when { meervoudige_keuze ~= "Banaan, Citroen" }
 
|Waar
 
|Niet praktisch, omdat het enkel ingezet kan worden voor bepaalde combinaties.
 
|- style="color: gray;"
 
 
|
 
|
|Meervoudige keuze
+
|-
|[ "Appel", "Banaan", "Citroen" ]
+
|Goed
|"Appel, Banaan, Citroen"
 
|show_when { meervoudige_keuze ~= "el, Banaan, Ci" }
 
|Waar
 
|Niet nuttig.
 
|- style="background-color: #ccffcc;"
 
|Aanbevolen
 
|Meervoudige keuze
 
|[ "Appel", "Banaan", "Citroen" ]
 
|"Appel, Banaan, Citroen"
 
|show_when { "Appel" in meervoudige_keuze }
 
|Waar
 
|"Appel" is gelijk aan één van de waarden.
 
|- style="color: gray;"
 
 
|
 
|
|Meervoudige keuze
 
|[ "Appel", "Banaan", "Citroen" ]
 
|"Appel, Banaan, Citroen"
 
|show_when { "Appel, Banaan, Citroen" in meervoudige_keuze }
 
|Niet waar
 
|"Appel, Banaan, Citroen" is niet gelijk aan één van de waarden.
 
 
|}
 
|}
 
=== Functies ===
 
Verschillende functies kunnen toegevoegd worden aan vergelijkingen.
 
===== AND =====
 
De AND functie is 'waar' als alle voorwaarden 'waar' zijn. De voorwaarden moeten worden gescheiden door een komma.
 
<pre>
 
show_when { and( waar, waar, waar ) }
 
show
 
 
show_when { and( waar, niet waar, waar ) }
 
don't show
 
 
show_when { and( niet waar, niet waar, niet waar ) }
 
don't show
 
</pre>
 
===== OR =====
 
De OR functie is 'waar' als minimaal één van de voorwaarden 'waar' is. De voorwaarden moeten worden gescheiden door een komma.
 
<pre>
 
show_when { and( waar, waar, waar ) }
 
show
 
 
show_when { and( waar, niet waar, waar ) }
 
show
 
 
show_when { and( niet waar, niet waar, niet waar ) }
 
don't show
 
</pre>
 
===== NOT =====
 
De NOT functie is 'waar' als de voorwaarde 'niet waar' is, en omgekeerd, is 'niet waar' als de voorwaarde 'waar' is.
 
<pre>
 
show_when { not( niet waar ) }
 
show
 
 
show_when { not( waar ) }
 
don't show
 
</pre>
 
 
===== Functie voorbeelden =====
 
AND
 
<pre>
 
show_when { and( voorbeeld_kenmerk == "Citroen", example_kenmerk * 4 == 8, beispiel_kenmerk == "Akkoord" ) }
 
show_when { and( "Citroen" == "Citroen", 2 * 4 == 8, "Akkoord" == "Akkoord" ) }
 
show_when { and( waar, waar, waar ) }
 
show_when { waar }
 
show
 
</pre>
 
OR
 
<pre>
 
show_when { or( voorbeeld_kenmerk == "Appel", voorbeeld_kenmerk == "Peer", voorbeeld_kenmerk == "Citroen" ) }
 
show_when { or( "Citroen" == "Appel", "Citroen" == "Peer", "Citroen" == "Citroen" ) }
 
show_when { or( niet waar, niet waar, waar ) }
 
show_when { waar }
 
show
 
</pre>
 
NOT
 
<pre>
 
show_when { not( voorbeeld_kenmerk == "Appel" ) }
 
show_when { not( "Citroen" == "Appel" ) }
 
show_when { not( niet waar ) }
 
show_when { waar }
 
show
 
</pre>
 
AND, OR, NOT
 
<pre>
 
show_when { or( niet waar, and( waar, not (niet waar), waar ), not( or ( and ( waar, waar ), niet waar ) ) ) }
 
show_when { or( niet waar, and( waar, waar          , waar ), not( or ( waar              , niet waar ) ) ) }
 
show_when { or( niet waar, waar                              , not( waar                                ) ) }
 
show_when { or( niet waar, waar                              , niet waar                                  ) }
 
show_when { waar                                                                                            }
 
show
 
</pre>
 

Huidige versie van 15 mrt 2017 om 03:29

Algemeen

Zie ook de volgende overzichten:

Dit is een samenvatting van Rekenen en vergelijken uitgebreid. Zie de uitgebreide documentatie voor meer voorbeelden en complexere situaties.

Rekenen en vergelijkingen met waarden van Kenmerken kunnen op meerdere plekken in het systeem gebruikt worden, namelijk:

Rekenen

Formules kunnen gebruikt worden bij regels van het type 'vul waarde in met formule' en in vergelijkingen. De rekentekens die hierbij gebruikt kunnen worden zijn:

Naam Teken
Haakjes: ()
Keer/maal: *
Gedeeld door: /
Plus: +
Min: -

In regels:

voorbeeld_kenmerk * 5
5 * ( voorbeeld_kenmerk - 2)

In zttscript:

show_when { voorbeeld_kenmerk * 5 == 20 }
show_when { 5 * ( voorbeeld_kenmerk - 2 ) == 20 }

Zie voor meer informatie en complexere situaties: Rekenen uitgebreid.

Vergelijken

Met vergelijkingen kan gecontroleerd wordt of een waarde aan een bepaalde conditie voldoet. In deze vergelijkingen kunnen ook berekeningen opgenomen worden.

Operators

De operators die gebruikt worden
voor kenmerken met één waarde:

Naam Teken
is gelijk aan ==
is niet gelijk aan !=
groter dan >
kleiner dan <
groter of gelijk aan >=
kleiner of gelijk aan <=
bevat tekst ~=

De operator die gebruikt wordt voor
kenmerken met meerdere waarden:

Naam Teken
komt voor in in
show_when { voorbeeld_kenmerk == "tekst" }
show_when { "tekst" in meervoudig_kenmerk }

Functies

De AND functie is 'waar' als alle voorwaarden 'waar' zijn, terwijl de OR functie 'waar' is als minimaal één van de voorwaarden 'waar' is. De voorwaarden worden gescheiden door een komma.

show_when { and( voorbeeld_kenmerk == "Appel", example_kenmerk == "Peer" ) }
show_when {  or( voorbeeld_kenmerk == "Appel", example_kenmerk == "Peer" ) }

De NOT functie is 'waar' als de voorwaarde 'niet waar' is, en omgekeerd, is 'niet waar' als de voorwaarde 'waar' is.

show_when { not( voorbeeld_kenmerk == "Appel" ) }

Zie voor meer informatie en complexere situaties: Vergelijken uitgebreid.

Troubleshooting

Veel voorkomende foutjes zijn:

Omschrijving Voorbeeld
Script heet niet 'zttscript' Fout JavaScript
Goed zttscript
Kijken of het kenmerk voorkomt in de waarde, ipv andersom Fout show_when { magic_string in "waarde" }
Goed show_when { "waarde" in magic_string }
Aanhalingstekens uit Microsoft Word gebruiken Fout show_when { magic_string == “waarde” }
Goed show_when { magic_string == "waarde" }
Magicstring met blokhaken geschreven Fout show_when { [[magic_string]] == "waarde" }
Goed show_when { magic_string == "waarde" }
Niet letten op hoofdlettergevoeligheid Fout show_when { magic_string == "Waarde" }
Goed show_when { magic_string == "waarde" }
Enkelvoudige operator gebruikt voor meervoudig kenmerk
Let op: Dit werkt wel, maar is enkel 'waar' wanneer er niet meerdere opties aangevinkt zijn
Fout show_when { "waarde" == meervoudige_keuze }
Goed show_when { "waarde" in meervoudige_keuze }
Fout
Goed
Fout
Goed