Eenvoudige berekening
Maak een formulier aan met 3 numerieke velden, naam van de velden resp. numeriekveld1, numeriekveld2 en uitkomst.
Het bijschrijft resp. 1e waarde, 2e waarde en Uitkomst
Overige eigenschappen hoeven niet te worden ingevuld.
Voeg als 1e control een Custom Xforms control in.
In de formulierendesigner ziet dit dan er als volgt uit:
Neem in de Custom Xforms control eigenschappen in het blok Model data de volgende tekst op:
<xf:bind nodeset="instance()/uitkomst" calculate="instance()/numeriekveld1 + instance()/numeriekveld2" xmlns:xf="http://www.w3.org/2002/xforms" />
Toelichting:
De velden dienen via een XPATH expressie te worden gekwalificeerd.
instance()/ verwijst naar de huidige instance van de formulierdata. In dit eenvoudige voorbeeld zijn alle velden direct op het formulier aanwezig. Indien u gebruik maakt van groepen hou er dan rekening mee dat in de kwalificatie van de veldnamen ook deze groepen moeten worden gespecificeerd.
Bijvoorbeeld: als veld uitkomst was opgenomen binnen een groep control met de naam 'berekening' dan zal, gegeven het gebruikte voorbeeld, de XPATH kwalificatie voor het uitkomst veld wijzigen naar instance()/berekening/uitkomst.
Bij uitvoering van het formulier toont het scherm:
In plaats van een optelling kunt u ook gebruik maken van andere rekenkundige operatoren, '-' (aftrekken) , '*' (vermenigvuldigen) en '/' of 'div' (delen) en gebruik maken van haakjes om de rekenkundige bewerkingsvolgorde te beinvloeden.
Gebruik i.p.v. het deelteken (/) het synoniem 'div' ( omdat een deelteken vaak wordt opgevat als een onderdeel van een XPATH expresssie).
Ook kunt u complexere berekeningen in 1 keer uiitvoeren bijvoorbeeld:
<xf:bind nodeset="instance()/uitkomst" calculate="((nstance()/numeriekveld1 - instance()/numeriekveld2) * nstance()/numeriekveld2) div instance()/numeriekveld1" xmlns:xf="http://www.w3.org/2002/xforms" />