Rekenen en Vergelijkingen Samenvatting: verschil tussen versies

Uit ZaaksysteemWiki
Ga naar: navigatie, zoeken
(Operators)
(Keuze kenmerken)
Regel 89: Regel 89:
 
|Meervoudige keuze
 
|Meervoudige keuze
 
|}
 
|}
===== Keuze kenmerken =====
+
===== in-operator =====
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.
+
De meeste kenmerken bevatten één waarde, maar 'meervoudige keuze'-kenmerken bevatten vaak meer dan één waarde. Om te kunnen vergelijken met één van die waarden moet de 'in'-operator gebruikt worden.
  
Samenvattend:
+
=== Voorbeelden ===
<ul>
+
<pre>show_when { voorbeeld_kenmerk == "tekst" }</pre>
<li>Gebruik de 'in'-operator enkel voor 'meervoudige keuze'-kenmerken</li>
+
<pre>show_when { "tekst" in "meervoudig_kenmerk" }</pre>
<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.
 
 
 
{| class="wikitable" style="text-align:center;" width="100%"
 
|+ style="text-align:left;"|Voorbeelden tekstveld (en overige kenmerken)
 
|-
 
!style="width:  75px;"|
 
!style="width: 125px;"|Kenmerktype
 
!style="width: 200px;"|Waarde (array)
 
!style="width: 200px;"|Waarde (string)
 
!style="width: 400px;"|Vergelijking
 
!style="width: 75px;"|Uitkomst
 
!                    |Toelichting
 
|- style="background-color: #ccffcc;"
 
|Aanbevolen
 
|Tekstveld
 
|
 
|"Appel"
 
|show_when { tekstveld == "Appel" }
 
|Waar
 
|Controleer of de waarde gelijk is aan X
 
|- style="background-color: #ccffcc;"
 
|Aanbevolen
 
|Tekstveld
 
|
 
|"Appel"
 
|show_when { tekstveld ~= "ppe" }
 
|Waar
 
|Controleer of de waarde een stuk tekst bevat dat gelijk is aan X
 
|- style="color: gray;"
 
|
 
|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;"|
 
!style="width: 125px;"|Kenmerktype
 
!style="width: 200px;"|Waarde (array)
 
!style="width: 200px;"|Waarde (string)
 
!style="width: 400px;"|Vergelijking
 
!style="width: 75px;"|Uitkomst
 
!                    |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;"|
 
!style="width: 125px;"|Kenmerktype
 
!style="width: 200px;"|Waarde (array)
 
!style="width: 200px;"|Waarde (string)
 
!style="width: 400px;"|Vergelijking
 
!style="width: 75px;"|Uitkomst
 
!                    |Toelichting
 
|- style="color: gray;"
 
|
 
|Meervoudige keuze
 
|[ "Appel", "Banaan", "Citroen" ]
 
|"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" ]
 
|"Appel, Banaan, Citroen"
 
|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" ]
 
|"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 ===
 
=== Functies ===

Versie van 14 dec 2015 om 09:14

Algemeen

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

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
Haakjes: ()
Keer/maal: *
Gedeeld door: /
Plus: +
Min: -

Afronding

Formules worden afgerond op 10 cijfers achter de komma. Een uitkomst die in als waarde in een kenmerk wordt opgeslagen wordt afgerond op twee cijfers achter de komma.

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 Kenmerktype
is gelijk aan ==
is niet gelijk aan !=
groter dan >
kleiner dan <
groter of gelijk aan >=
kleiner of gelijk aan <=
bevat tekst ~=
komt voor in in Meervoudige keuze
in-operator

De meeste kenmerken bevatten één waarde, maar 'meervoudige keuze'-kenmerken bevatten vaak meer dan één waarde. Om te kunnen vergelijken met één van die waarden moet de 'in'-operator gebruikt worden.

Voorbeelden

show_when { voorbeeld_kenmerk == "tekst" }
show_when { "tekst" in "meervoudig_kenmerk" }

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.

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
OR

De OR functie is 'waar' als minimaal één van de voorwaarden 'waar' is. De voorwaarden moeten worden gescheiden door een komma.

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
NOT

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

show_when { not( niet waar ) }
show

show_when { not( waar ) }
don't show
Functie voorbeelden

AND

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

OR

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

NOT

show_when { not( voorbeeld_kenmerk == "Appel" ) }
show_when { not( "Citroen" == "Appel" ) }
show_when { not( niet waar ) }
show_when { waar }
show

AND, OR, NOT

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