Systemmanual Corda/Instrato 7.0 – administrator
   [For Judith: Dokumentgrupper « (⇧) » Variabler eksempler]

Variabler

Variabler er datafelt som defineres for firmaet, og som det automatisk lages et eksemplar av for hver bruker som opprettes under firmaet. Ved opprettelse av variabler angis bare et navn på variabelen. Dette kan settes helt fritt men vil senere brukes som referanse, og må derfor skrives helt nøyaktig f.eks. med korrekt bruk av tegn og store og små bokstaver.

Eksempler på variabler kan være «Mobilnummer», «Forhandlernavn», «Fontstørrelse». Det er ingen begrensninger på hvor mange variabler som kan opprettes på et firma. Variablene kan refereres til i tekstfelt og i tekstbokser med syntaksen {{Variabelnavnet}}. Der variabler brukes i tekstfelt og i tekstbokser skal disse settes ikke-editerbar, dette er fordi variablene i seg selv alltid blir editerbare for brukeren.

Variabler
Liste over variabler

Du administrerer variablene i administrator-valget «Variabler». Klikk «Ny variabel», skriv inn variabelnavnet, f.eks «Telefon» (minus anførselstegn, selvfølgelig), i feltet og klikk «lagre». Dersom du allerede har opprettet flere brukere vil du i «verdier» se at hver bruker får «sin» Telefon-variabel. I Corda versjon 7.126 og senere kan du opprette flere variabler i én operasjon ved å skrive én variabel per linje.

Du kan enkelt endre navn på verdiene senere ved å skrive det nye navnet i feltet under «Navn», og klikke «lagre». Dersom du ønsker å se om en variabel er i bruk, klikk «bruk» utenfor den variabelen det gjelder, og du får listet opp alle maler og dokumenter den er brukt.

For å se verdiene hver enkelt bruker har i sine variabler, klikk «verdier» og disse listes opp.

Filtrer på mal

For å liste opp kun de variablene som er i bruk på én bestemt mal, velg denne malen i dropplisten øverst og klikk «lagre». Dette valget gjør variabellisten mer oversiktlig, og det er også kun disse verdiene som vises når du klikker «verdier». I tillegg til å vise variablene for en enkeltmal, er det mulig å vise «alle» variabler og også variabler som ikke er tilknyttet noen mal («ingen»).

Filtrer på type

For å liste opp kun variabler av én bestemt type, f.eks. dropplistevariabler, velg en type i denne lista og klikk lagre for å oppdatere tabellvisningen.

Variabelverdier
Variabelverdier.

Verdier

Øverst på siden finner du lenken «Verdier». Her vil variabelverdiene til alle brukerne (det de har skrevet inn når de har bestilt) listes opp. Du kan inn å endre i variabelteksten til alle brukere når du er Admin. Denne lista kan etterhvert bli veldig lang siden hver bruker har ett sett av alle variablene. Derfor vil det ofte være nyttig å velge en avdeling i venstremenyen, eller å velge mal øverst på variabelsiden, før du går inn på verdiene. Da vil kun verdiene til brukerne i denne avdelingen, eller bare verdiene for valgt mal, listes opp.

Det er mulig å filtrere tabellen ved å skrive inn søkeord i ett eller flere av feltene over tabellen.

Navn

I feltet for Navn skrives den teksten som brukes i malen. Her er det viktig at store/små bokstaver skrives nøyaktig slik de er brukt i malen. Det er mulig å endre navn ved å skrive inn nytt navn og klikke «lagre».

«Flytt opp/ned»

Valgene «Flytt opp/ned» har ikke lenger noen betydning i senere Corda-versjoner, og er også fjernet i sin helhet fra versjon 7.53. Lista over variabler sorterer seg alltid etter sorteringskoder.

Tekstblokkvariabel

Dersom variabelen skal gå over flere linjer og bestilleren skal kunne dele linjene selv, må variabelen gjøre som til en tekstblokkvariabel. I kolonnen «Tekstblokk» klikker du på «Nei». Denne vil da endre seg til «Ja - Rediger». På input-siden vil nå brukeren få et større felt å skrive i på denne variabelen.
Klikk en gang på «Ja» for å endre tilbake til vanlig variabel.

Editor bredde/høyde
Editor bredde/høyde

Rediger: Ved å klikke på «Rediger», og skrive inn andre verdier enn null i feltene som kommer opp, vil du kunne definere høyden og bredden på boksen som brukeren skriver tekst i. Dette for å kunne tilpasse størrelsen mer etter hvor mye tekst som er beregnet å kunne skrive inn. En tekstboks som skal inneholde tittel kan for eksempel være mindre enn en tekstboks for mengdetekst. Når input-skjerm versjon 2 benyttes, er det kun her på variabelen at editor kan slås på for en variabel, valget på tekstboksen benyttes ikke lenger. Her vil det også kun være høyde-verdien for boksen som brukes.
(Dersom editor er slått på vil det være en minimumshøyde på 125px som det ikke er mulig å komme under.)


I versjon 7.130 ble det lagt til funksjonalitet for å bestemme hvilke verktøy som skal være tilgjengelig i editoren. Dette styres fra «Rediger»-skjermen på den aktuelle variabelen.

Standardvalgene (med | som skilletegn) er:Teksteditor
bold italic | subscript superscript | bullist | removeformat | charmap | undo redo

Andre tilgjengelige valg:
pagebreak selectall

 

Dropplistevariabel

Navn:

Dropplistevariabel

En variabel kan også være en droppliste der Admin på forhånd angir hvilke verdier brukeren skal kunne velge mellom. I listen over variabler i «Variabler», i kolonnen «Droppliste», klikk «Nei» utenfor variabelen du ønsker å gjøre om til droppliste. «Nei» vil da endre seg til «Ja – Rediger». Ved å klikke på «Ja» går du tilbake til vanlig variabel. Ved å klikke «Rediger» får du skrive inn verdiene brukeren skal kunne velge mellom. Skriv inn og trykk lagre helt til du har alt på plass. Du kan også legge inn sorteringkoder for å få alternativene i den rekkefølgen du ønsker. For å endre navn på en verdi, endre navnet i feltet og «Lagre».

Dersom variabelen er en tekstboks, og dermed kan inneholde flere linjer, kan du i tillegg angi «kortnavn». Dette for at brukeren skal kunne velge mellom disse alternativene på samme måten som i en vanlig dropplistevariabel (på én linje). Dersom det ikke fylles ut noe kortnavn, bruker Corda det første ordet i alternativet.

OBS! Dersom du endrer navn på et alternativ i dropplistevariabel-lista, vil alle brukere som har valgt dette alternativet på sin mal, få resatt sine valg. Verdien vil ikke oppdatere seg automatisk. Dette er fordi malen ikke lenker mot en ID, bare mot selve tekstinnholdet i variabelalternativet.

Obligatorisk

Dersom du ønsker at en variabel skal være obligatorisk ved bestilling, f.eks. navnet på et visittkort, så kan du sette dette valget til «Ja» ved å klikke på «Nei», som er standard status. Da vil bestilleren, når har forsøker å bestille et dokument uten å fylle ut f.eks. navn, få beskjed om at feltet ikke er fyllt ut, og blir bedt om å gå tilbake.

«Sorteringskode»

Samme funksjon som på elementene ellers. Når det brukes variabler, må sorteringen av disse angis her i Variabler og ikke i tekstelementet på malen/dokumentet.

Tving

Her kan du styre formatering av teksten fra valgliste med valgene:

  • Ingen – Dette setter teksten slik den er skrevet av brukeren
  • Minuskler – Tvinger all tekst til små bokstaver.
  • Versaler – Tvinger all tekst til store bokstaver.
  • Stor forbokstav – Tvinger alle ord i tekstelementet til stor første bokstav og resten minuskler.
  • Tall – Dette tvinger verdien som skrives inn til kun å inneholde tall, untatt første punktum eller komma. Andre tegn blir ignorert.
  • Telefonnummer – Dette tvinger verdien til å ignorere alle andre tegn enn tall og mellomrom, pluss og parenteser.

Verdien som skrives inn blir ikke endret, så når du går og ser på verdiene, så vil ikke de være påvirket av valgene her. Men når verdien plasseres inn på en PDF, vil teksten bli styrt etter valg formatering.

Bruk

Om du ønsker å vite om en variabel er brukt noe sted i en mal eller et dokument, og hvor den er brukt, klikker du på lenken «bruk» til høyre for variabelen. Du får så vite hvilken mal varabelen er brukt på, og ev. hvilke dokumenter (med hvem som eier dem i parentes).

Kopier verdier

Hvis du ønsker å kopiere ut en variabelverdi til mange brukere kan du bruke kopieringsfunksjonen. Corda henter som standard verdien fra avdelingens eller firmaets DefaultCreateUser, men du har mulighet til å velge å kopiere fra admins verdier. Du har mulighet til å velge/velge bort brukere, samt endre hva som blir kopiert ut til den enkelte bruker.
OBS! Det er ikke mulig å angre denne operasjonen!

Kopier variabel

Dette kopierer selve variabelen – uten verdier – men med alt av innstillinger og dropplistealternativer. Den kopierte variabelen får navnet «Kopi av [variabelnavn]».

Visningstekst 1
Visningstekst – admin.

Visningstekst 2
Visningstekst – bruker.

Visning

Når det blir mange maler og mange variabler å holde orden på, så vil man ofte oppleve at man gjerne skulle hatt samme navn på flere variabler, f.eks. «Tittel», og man ender opp med å kalle én variabel for «prod.ark Tittel» og en annen for «Ann. Tittel», «Ann2 Tittel» osv. Eller at man i andre tilfeller gjerne skulle gitt litt mer info til brukeren i forbindelse med tekstfeltet på input-siden. Ved hjelp av «Visning» er dette mulig.

Helt til høyre for hver variabel finnes en link til «Visning». Denne åpner en ny side med en tekstboks hvis visningstekst kan fylles ut. Når det er lagt til innhold i feltet for visning, så vil brukeren se denne teksten i stedet for variabelnavnet. Visningsteksten tolker html-kode, så her er det mulig å utnytte visningsteksteen maksimalt.

Hvordan fungerer variabler?

Når programmet setter inn tekst i et PDF dokument skjer følgende: Det søkes etter {x{y}z} i all tekst. (x,y,z er alle variabler, dvs. hva som helst av tekst kan stå der.)

Dette ser kanskje noe kryptisk ut, men det betyr: For alle slike kombinasjoner som finnes, søk etter y som variabelnavn, hvis denne finnes, og verdien ikke er tom, bytt ut {x{y}z} med x, etterfulgt av variabelverdien, etterfulgt av z. Finnes ikke variabelen, eller den er tom, slett hele elementet {x{y}z}.

Skjul input

En annen måte er å kombinere med formen {x{$y$}z}. Forskjellen er at om en bruker $-tegnet rundt variabelnavnet, så kommer ikke selve variabelverdien med. $-tegn rundt variabelnavnet brukes om f.eks. forteksten «Tlf:» og telefonnummeret ikke kan stå i samme tekstboks. En kan da ha ett tekstfelt eller -boks med {Tlf: {$Telefonnummer$}} og ett med {{Telefonnummer}} (se Eksempel 3B på neste side.) Eller hvis du har noe tekst som er avhengig av at en variabel på en annen side fylles ut.

Tips 1: $-tegnet kan brukes for å samle flere variabler under samme fane på input-siden til brukeren. Hvis du har to variabler som «hører sammen», men som ligger i hver sin tekstboks på malen, kan du legge inn begge variablene i den ene boksen, men skjule en av dem med $-tegnet. Da vil begge innskrivingsfeltene komme under samme fane for brukeren. Se eksempel 6 på neste side.
Merk: Dersom to tekstbokser har ulikt sett med variabler, men også har én eller flere variabler til felles, vil du være nødt til å gi den ene boksen en høyere sortering og legge alle variablene fra den andre boksen over i den første. Variablene fra den andre boksen skjules ved hjelp av $. Hvis dette ikke gjøres, vil du oppleve at noen av variablene ikke blir synlig på input-siden.

Tips 2: $-tegnet kan også være nyttig hvis du har en bunnjustert tekstboks (eller toppjustert hvis vi tenker motsatt) der du trenger en blank linje nederst. Corda vil gjerne ignorere linjeskift og mellomrom satt rett i boksen. Men dersom du legger inn en skjult variabel her, vil Corda beholde linjen blank. Se eksempel 3c på neste side

Formatering av tekst, telefonnumre o.l.

Ved hjelp av %-tegnet (i steden for $-tegn som vist over) kan du forhåndsdefinere hvordan f.eks. et telefonnummer skal skrives. Det skjer som følger:

{Telefon: {%Telefon%}## ## ## ##}

Uansett hvordan bestilleren fyller ut de åtte tallene som utgjør telefonnummeret (12345678, 123 45 678, 12 34 5678 osv.) vil resultatet bli 12 34 56 78.

«## ## ## ##» formaterer ethvert tegn som brukeren fyller ut i input-feltet (også tekst, men problemstillingen vil vel i hovedsak omfatte telefonnumre). Dersom brukeren med eksemplet over fyller ut +4712345678 vil resultatet bli: +4 71 23 45. Dette løser vi på følgende vis:

{Telefon: %+47%{%Telefon%}## ## ## ##}

Ved å definere %+47% foran variabelnavnet på denne måten sier vi at dersom brukeren fyller ut +47 i input-feltet, så skal dette fjernes og resten av tegnene skal formateres som 12 34 56 78. Det er viktig at %+47% kommer rett før variabelnavnet.

Dersom prefikset +47 skal fylles ut i feltet, kan du formatere variabelen slik:

{Telefon: %+47%{%Telefon%}+47 ## ## ## ##}

Da vil resultatet bli +47 12 34 56 78 uansett om bestiller fyller ut +47 foran nummeret eller ikke.

Du kan selvfølgelig fortsatt ha variabel tekst til slutt i variabelen etter #-tegnene. #-tegnene definerer hvor mange tegn brukeren skal ha lov til å fylle ut. Skriver brukeren 9 siffer i telefonnummeret sitt, kommer ikke det siste sifferet med. Det vil også si at ved bruk av formatering kan ikke tegnet # brukes som noe annet enn å definere formatering. Se andre eksempler på neste side.

Formatering av tall, priser o.l.

Dersom du ønsker at en pris alltid skal skrives med tusenskille og to desimaler, f.eks. «2 534,50», gjøres det på følgende måte:

{Pris: kr {%Pris%}number_format(2, )}

Dette setter inn prisen formatert etter norsk standard, og gir følgende resultat: «Pris: kr 1 234,00»
innholdet i parentesen bak munber_format angir følgende: antall desimaltall, desimalskille og tusenskille. For å definere en pris uten desimaler:

{Pris: kr {%Pris%}number_format(0, ),-}

Resultat: «Pris: kr 1 234,-»

Standardverdi

Du kan angi en standardverdi sammen med en variabel. Denne verdien vil brukes dersom brukeren ikke har noen verdi i sin variabel. Dette kan f.eks. være å definere at dersom brukeren ikke har valgt noen fontstørrelse, så settes denne til 12 pt. Til dette benyttes to spørsmålstegn bak variabelnavnet direkte etterfulgt av den verdien som skal inn som standard, f.eks. på denne måten:

{CordaFont size="{fontstørrelse??12}">}

Kombinasjonsvariabel

Det er mulig å definere at en variabel skal vises kun dersom én eller to andre variabler har innhold. For eksempel ved tilfeller som dette:

Telefon: 12 34 56 78 • Mobil: 999 99 999

Her ønsker du at «•» kun skal vises dersom både telefon og mobil har innhold. Du ønsker ikke å ha en enslig prikk verken etter telefon eller før mobil. Før versjon 5.4.72 måtte dette løses ved å lage en egen variabel for bulletpunktet med et droppliste valg for om det skulle med eller ikke.

Nå kan vi formatere bulletpunktet inn i en kombinasjonsvariabel ved hjelp av «&&» (både og), og «||» (enten eller). For eksempel slik:

{Telefon: {Telefon}}{ •{$Telefon&&Mobil$} }{Mobil: {Mobil}}

En kombinasjonsvariabel omsluttes alltid av «$», og kan kombinere to variabler ved hjelp av «&&» eller «||» uten mellomrom mellom variabelnavnene. I eksemplet over brukes «&&» for å angi at begge variablene Telefon og Mobil må ha innhold for at variabelen, dvs. bulletpunktet, skal vises.

Se flere eksempler på neste side.

Styringsvariabel

Noen ganger har man flere variabler og bilder som hører sammen, og som kun trenger ett valg. For eksempel valg for avdeling, adresse, logo osv. Tidligere måtte man velge navn, adresse og logoer for seg. Nå kan man styre dette på ett valg ved å definere én variabel som «styringsvariabel».

Styringsvariabler
Styringsvariabler.

En styringsvariabel må først settes til å være tekstboks og droppliste. Når du redigerer dropplisten, har du et valg overst for å sette «styringsvariabel: JA».

I verdi-feltene på styringsvariabelen defineres så innholdet for variablene som skal styres på følgende måte (rød tekst = variabelnavn/bildenavn, grønn tekst = verdi som kommer ut på PDF, blå tekst = navnet som dukker opp valglisten på brukerens inputside):

VerdiVisningsnavn

Avdeling=[[Oslo]]
Adresse=[[Hovedveien 3
Postboks 123
0542 Oslo]]
Faks=[[+47 22 23 24 25]]
*Logo=oslo.pdf
*Logo-s2=oslo.pdf

 

Oslo

Avdeling=[[Trondheim]]
Adresse=[[Kongens gate 12
Postboks 1234
7004 Trondheim]]
Faks=[[]]
*Logo=trondheim.pdf
*Logo-s2=trondheim.pdf

Trondheim

Hvis alternativ «Trondheim» velges over, vil dette valget styre innholdet i tre andre variabler, samt sette riktig logo både forsiden og baksiden.

Styring av variabler
Alle variablene som skal styres av styringsvariabelen må opprettes. Og selve styringsvariabelen må også legges inn sammen med de andre variablene på malen. Verdien som skal ut på PDF-en må settes mellom to klammer [[]]. Mellom disse to klammene kan man da ha både linjeskift og andre tegn. Neste variabel som defineres settes på ny linje etter at forrige variabelverdi er avsluttet med ]].

For å definere en variabelverdi som tom, sett de fire klammene uten noe mellom, slik: [[]].

Skjul styrte variabler
Variabler som styres av en styringsvariabel må skjules slik at de ikke er mulig å redigere på inputsiden (slik overstyrings-funksjonalitet kommer i en senere versjon). Dette gjøres ved å merke variabelen som «skjult» på siden som lister opp alle variablene, og klikke lagre

Styring av bilder
Det er også mulig å styre bilder fra styringsvariabelen. Bildeelementet må ligge på dokumentet, og må peke til en av filene inni den mappen som bildene skal velges fra. Når et bilde skal være valgbart via styringsvariabelen må man altså ikke peke elementet til mappen, slik man normalt ville gjort for et redigerbart bilde, men til et av bildene inni mappen. Da vil systemet finne riktig bilde innenfor samme mappe når man velger et alternativ fra styringsvariabelen. I verdifeltet for styringsvariabelen angis et bilde med «*» før navnet på bildeelementet. Dette for at systemet skal kjenne igjen dette som et bilde, ikke en vanlig variabel.

Merk at det ikke er behov for å omslutte bildenavnene med klammer slik som verdiene for vanlige variabler, men bildenavnet må skrives nøyaktig slik det fremkommer i bildebasen.

«Supervariabler»

Fra og med Corda 7.0 kan alle innskrivingsfelter på maler og elementer (ikke bare verdi-feltet) inneholde variabler. Dette er helt ordinære variabler, men det anbefales at disse variablene enten gjøres som til dropplistevariabler direkte, eller skjules og styres av en styringsvariabel.

Ved hjelp av supervariabler øker mulighetene for dynamikken i malene betraktelig. Ved å bruke variabler i stedet for en vanlig verdi som f.eks. x/y-koordinat, kan du gi brukeren mulighet til å flytte et element rundt på dokumentet eller styre hvilket elemet som vises. Ved å bruke variabler i bredde/høyde-feltet på malen, kan du også la brukeren styre bredden og høyden på malen direkte uten å sette malen som dynamisk.

Dette er svært avansert bruk av variabler, så her må man holde tunga rett i munnen.

Se et eksempel på det å kombinere supersvariabler og styringsvariabler på neste side.

OBS: Dersom du bruker variabler på bredde/høyde-feltene på selve malen eller på fontstørrelser, må du inn og sette verdier på disse variablene før du får lastet input-siden. Input-siden klarer ikke å laste inn, men vil bare stå og henge, dersom bredde/høyde/fontstørrelser ikke har en defiert tall-verdi.

Matematiske uttrykk

I tekstbokser og i feltene som definerer mal, bildebokser og tekstbokser kan man bruke matematiske uttregninger. I disse matematiske utregningene kan man bruke variabler, men man kan ikke bruke matematiske utregninger som variabelverdier. Uttrykkene som kan brukes er definert av MathEval, og detaljert beskrivelse kan leser der. (I Corda can følgende av PHPs funksjoner brukes: sin, sinh, arcsin, asin, arcsinh, asinh, cos, cosh, arccos, acos, arccosh, acosh, tan, tanh, arctan, atan, arctanh, atanh, sqrt, abs, ln, log, round, ceil, floor, average, max, min, mod, round, rand_int, rand_float)

Matematiske utregninger defineres i Corda ved at de omsluttes av fire hakeparenteser. F.eks.:

[[[[ 2 + 3 ]]]]

Utregningen kan kombineres med ordinære variabler på følgende måte som eksempel:

<CordaFont{ size="{fontstørrelse}"} leading="[[[[ {{fontstørrelse}} * 1.2 - 1 ]]]]">

Variabelverdien blir definert først, så hvis brukeren f.eks. har valgt eller fylt ut verdien «10» som fontstørrelse blir regnestykket 10*1.2-1, altså en linjeavstand på 11. Dersom brukeren velger fontstørrelse på 32 blir regnestykket 32*1.2-1 = 37,4.

For at regnestykket skal gå opp må variabelens verdi være et tall. Dersom noe annet enn et tall brukes som variabelverdi, vil regnestykket bli ugyldig, og verdien tvinges til 0. Merk også at desimaltall i regnestykket må være punktum.

Automatiske systemvariabler

Automatiske variabler brukes på en mal på samme måte som en vanlig variabel, men må ikke opprettes på variabelsiden, og kan ikke administreres her som en vanlig variabel. Den genererer ikke noe inputfelt for brukeren, men verdien puttes inn på dokumentet automatisk. I malen kan den formateres, ved hjelp av % og $, på samme måten som en vanlig variabel.

Tilgjengelige autovariabler (variabelnavnene må skrives inn nøyaktig slik som de står her):

CompanyCounter – En automatisk teller som øker med 1 hver gang en ny PDF genereres på firmaet på en mal som bruker denne variabelen (dersom malen er en dynamisk mal, vil telleren øke med 2). Det vil si hver man oppdaterer forhåndsvisningen av et dokument. Eksempel på bruk: Bill. mrk.-nummer i en avis. Hvilket tall neste generering skal begynne på defineres på siden Eget firma.

UserCounter – En automatisk teller som øker med 1 hver gang brukeren genererer en ny PDF på en mal som bruker denne variabelen (dersom malen er en dynamisk mal, vil telleren øke med 2). Det vil si hver man oppdaterer forhåndsvisningen av et dokument. Eksempel på bruk: Versjonsnummer på dokumenter.
Hvilket tall neste generering skal begynne på, defineres av admin på brukersiden.

CurrentDate – Skriver ut dagens dato. Datoen blir formatert i henhold til innstillingen på serveren.

CurrentTime – Skriver ut nøyaktig klokkeslett for tidspunktet PDF-en ble generert. Klokkeslettet skrives ut i format 17:12.

CurrentDateTime – Skriver ut dato/klokkeslett etc. i det formatet du ønsker. Føy til et kolon bak variabelnavnet etterfulgt av ønsket format.
Eksempel: {{CurrentDateTime:d.m.Y H:i}} vil gi resutatet «22.08.2011 14:41» mens {{CurrentDateTime:W Y}} vil gi aktuelt ukenummer i aktuelt år, «34 2011».

Dersom du trenger å ha annen tekst inni datoen, f.eks. skrive «uke» foran ukenummeret slik: «22.08.2011 uke 34», Må tegnene i «uke» skilles ut, escapes, med \-tegnet på denne måten: {{CurrentDateTime:d.m.Y \u\k\e W}}.

Komplett liste over tilgjengelige formater finnes på denne siden: http://php.net/manual/en/function.date.php. Merk at dersom det velges et format med tekst, f.eks. med fullt navn på dag/måned, så vil språk være avhengig av oppsett på serveren Corda-en ligger på. Vanligvis vil teksten da komme ut på engelsk.