Skip to main content
Skip table of contents

Hvordan bruger man udtryksevaluering tillægsfelter?

Tillægsfeltet af typen "Tekst" og "Tal" kan have en undertype, som siger lidt om hvilken slags tekst feltet forventes at indeholde. En af undertyperne hedder "Expression" og får tillægsfeltet til at opfører sig ret anderledes.

Et tillægsfelt af undertypen "Expression" tillader at man indtaster en formel eller udtryk når feltet opsættes. Når tillægsfeltet vises på et objekt (altså på en opgave/virksomhed/udstyr/osv) så beregnes resultatet af formlen/udtrykket. Feltets indhold kan ikke redigeres på objektet (opgaven/virksomheden/udstyret/osv), det er altid det beregnede resultat som vises.

Der er en funktionalitet som skal slåes til (af Ventu) før dette er tilgængeligt.

Bemærk at der er både en ny og gammel syntaks for udtrykkene; denne side henviser til den gamle syntaks; tilllægsfelter som bruger den nye syntaks kan belaste systemet, men har også flere muligheder-

Muligheder

Formlen/udtrykket kan afhænge af felter fra objektet, så hvis tillægsfeltet f.eks. er lavet på en opgave, så kan formlen lave beregninger udfra opgavens deadline eller tidsestimat eller andre felter. Et eksempel kunne være formlen Date.dateadjust(this.tdeadline, "+1mo")  som viser datoen 1 måned efter opgavens deadline. this henviser til objektet (en opgave i dette tilfælde), tdeadline er et felt på opgaven, og Date.dateadjust() en funktion som ændrer en dato. 

For visse objekter er det muligt at tilgå tilknyttede objekter. Et tillægsfelt på en opgave kan f.eks. læse felter fra opgavens virksomhed: formlen  this.customer.customernumber+" !"  vil vise virksomhedens kundenr efterfulgt af et udråbstegn. this er igen objektet/opgaven, customer er et felt på opgaven som indeholder virksomheden, og customernumber er et felt på virksomheden.

I ovenstående eksempel læser man den "rå" værdi, dvs. hvis man f.eks. læser  this.waref  (arbejdsområde) så får man arbejdsområdets ID, hvilket måske ikke er så nyttigt. Man kan så istedet bruge funktionen  gvd()  som læser en formatteret værdi, dvs.  this.gvd("waref").

Hvis et objekt f.eks. har 5 tillægsfelter med tal som indsættes ved udfyldelse af et skema, så kan man lave en formel som f.eks. viser gennemsnittet (eller maksimum eller minimum osv) af disse 5 felter.


Adgang til andre objekter

Det er kun visse objekter som tillader at man tilgår tilknyttede objekter.

ObjektTilknyttede objekter

Opgave

Bruger, Virksomhed, Projekt
VirksomhedBruger, Person

Udstyr

Bruger, Hjemsted
TIcketOpgave

Navngivning af objekter

Det bygges op af navne, så hvis man eksempel ønsker at finde en virksomheds kunde nr og vise dette i et opgavetillægsfelt, så kan man angive this.customer.customernumber i et opgavetillægsfelt.

Opgaver (Todo)

De følgende ekstra felter er tilgængelige i this objektet.

customerVirksomheds objektet
userDen ansvarlige bruger
projectDen tilknyttede projekt (Den nye type fra projektmodulet)

Dvs. this.customer.latlon.lat giver dig virksomhedens breddegrad, og this.project.title giver dig projektets navn.

Virksomhed (Customer)

De følgende ekstra felter er tilgængelige i this objektet.

personKontaktpersonen
userVores reference

Udstyr (Tool)

De følgende ekstra felter er tilgængelige i this objektet.

placeofhomeHjemstedet for udstyret, dette er en virksomhed
userDen ansvarlige bruger


Felter

Liste over felter findes nemmest via Feltguide i HTML dokument opbyggelse, f.eks. this.customer.customeradress2 :


Operatorer og funktioner

Dette er kun en oversigt over de tilgængelige operatorer og funktioner. En mere komplet beskrivelse findes i den tekniske dokumentation

TypeOperatorer
Matematik+ - * / %
Sammenligning<=, >=, ==,  !=, >, <


TypeFunktioner
Dato/tidDate.time(), Date.date(), Date.strtotime(), Date,dateadjust()
Tekstlength(), lower(), upper(), substr(), sprintf(), replace(), split()
Listerlength(), explode(), implode()
MatematikMath.min(), Math.max(), Math.sum(), Math.random(), Math.floor(), Math.ceil(), Math.round(), alm. trigonometri osv.
Microbizzgvd()


Eksempler

Disse er ment som eksempler på syntaksen, eksemplerne er måske ikke specielt brugbare i det virkelige liv...

ObjektUdtrykBeskrivelseResultat
Opgavethis.customer.customernumber.length()Vis længden af virksomhedens nummer23
Personthis.firstname.upper()Vis personens fornavn med store bogstaverJESPER
OpgaveDate.dateadjust(this.tdeadline, "+1mo")En måned efter deadline2023-07-12

Math.max(this.custom12, this.custom13)+22 plus den største af værdierne i de to tal tillægfelter med IDer 12 og 13123

this.custom12 > this.custom131 hvis værdien i tal tillægsfelt ID 12 er større end værdien i tillægsfelt ID 13, ellers 01 eller 0

bar(this.custom14.split(","))Vis et diagram; kræver at tillægsfelt ID 14 indeholder tal adskilt af komma, f.eks. 12,33,25



JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.