Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

På denne side findes en række mere avancerede XPath operationer som du kan bruge i dine blanketter.

Formler med gentaget data

Hvis man bruger repeated grids, så kan det ofte være svært, at lave formler som $feltA + $feltB + $feltC, da man som designer ikke ved, hvor mange gentagelser brugeren ender med at lave. Så kan man i stedet lave formler med listeoperationer

I Blanketmotorens sandkasse finder du en blanket med navnet Lidt forskellige tips og tricks med lister fra repeated grids, hvor du kan se eksempler på formler med gentaget data, som også er beskrevet nedenfor

Læg en liste af tal sammen

Hvis et repeated grid eksempelvis har et talfelt med navnet gebyr, så kan du i et andet felt få summen af alle disse felter med formlen

sum($gebyr)

Bemærk: For at formlem skal virke, så skal alle gebyrfelterne være udfyldt, så overvej enten at give dem en initial value eller finde en måde at sikre, at felterne altid har en værdi

Liste af tekstværdier

Hvis et repeated grid eksempelvis har et tekstfelt med navnet bilmaerke, så kan du i et Plain Text Area lave en liste af disse værdien ved formlen (hvor codepoints-to-string(10)) repræsentere et linjeskift

string-join($bilmaerke, codepoints-to-string(10))

Tælle antal gentagelser med specifik værdi

Hvis et repeated grid eksempelvis har et felt med navnet biltype, som kan have værdien lastbil, så kan du tælle antallet af gentagelser med værdien lastbil med følgende formel

count($biltype[. = 'lastbil'])

Formler med datoer

Foruden de få eksempler med valideringer af datoer beskrevet her, så er flere forskellige muligheder for at regne med datoer, heriblandt lægge faste tidsintervaller til og trække fra for eksempelvis at få en dato ét år efter en anden dato.

Du finder i Blanketmotorens sandkasse et blanket med navnet Blanket med lidt forskellige tips og tricks omkring datofelter, hvor du kan se nedenstående eksempler i praksis

Læg tidsperioder til en given dato

En meget praktisk funktion ifm. logik i blanketter er at kunne justere end given dato med et fast tidsinterval som dage, måneder og år, enten ved at lægge perioden til eller trække den fra. Til dette kommer XPath med to hjælpsomme funktioner xs:yearMonthDuration og xs:dayTimeDuration, der kan bruges som illustreret nedenfor

Læg tre år til en dato

$datofelt + xs:yearMonthDuration('P3Y')

Træk to måneder fra en dato

$datofelt - xs:yearMonthDuration('P2M')

Læg fire dage til en dato

$datofelt + xs:dayTimeDuration('P4D')

Den første dato i måneden for en given dato

Formatering af datoer

Det kan ofte være interessant at formatere datoer forskelligt enten for at øge læsbarheden eller for at skjule eller vise relevante dele af en dato. Her kan man bruge XPath funktionen format-date, hvor du kan se en lang række eksempler herinde https://www.w3.org/TR/xslt20/#date-time-examples

Et af de mest nyttige eksempler er nok at præsentere en dato pænt med ord, som kan gøres på følgende måde

format-date($datofelt, '[D]. [MNn] [Y]', 'da', (), ())

Formler med tekststrenge

  • No labels