Innhald
Innhaldsliste 🔎︎

# Data

Fana Data styrer skjemaeigenskapane som refererer til den databasen som er knytt til skjemaet.

Vel kva datakjelde skjemaet er basert på, eller vel om dataa kan redigerast av brukaren. Bortsett frå funksjonar for sortering og filtrering, finn du òg alle dei eigenskapane som trengst for å laga underskjema.

For å bruka denne funksjonen …

Opna sprettoppmenyen for eit vald skjemaelement – vel fana Skjemaeigenskapar → Data.

Opna verktøylinja Skjemautforming og trykk ikonet Skjemaeigenskapar → fana Data.

## Analyser SQL-kommando

Bestemmer om SQL-uttrykket skal analyserast av LibreOffice. Viss du vel «Ja», kan du trykkja på knappen … ved sida av listeboksen Innhald. Då kjem det opp eit vindauge der du grafisk kan laga ei databasespørjing. Når du lukker dette vindauget, vert SQL-uttrykket for spørjinga du har laga, sett inn i listeboksen Innhald.

## Datakjelde

Definerer datakjelda som skjemaet skal referera til. Trykkjer du på knappen … vert dialogvindauget Opna opna slik at du kan velja datakjelde.

## Filter

Skriv inn vilkåra for filtrering av dataa i skjemaet. Filterspesifikasjonen følgjer SQL-reglar utan bruk av WHERE-uttrykket. Viss du for eksempel vil visa alle postane med fornamnet «Ivar», skriv du «Fornamn = 'Ivar'» i datafeltet. Du kan også setja saman fleire vilkår: «Fornamn = 'Ivar' OR Fornamn = 'Mikkel'». Då vert alle postane som passar til eitt av desse vilkåra viste.

Filterfunksjonen er tilgjengeleg i brukarmodus via knappane Autofilter og Standardfilter på verktøylinja Skjemanavigasjon.

## Innhald

Avgjer kva innhald som skal brukast i skjemaet. Innhaldet kan vera ein eksisterande tabell eller ei spørjing (som er laga i databasen tidlegare), eller noko som er oppgjeve med ei SQL-setning. Før du set inn eit innhald må du oppgje nøyaktig type i Innhaldstype.

Viss du har vald anten «Tabell» eller «Spørjing» som Innhaldstype,vil denne lista visa alle tabellane og spørjingane som er sette opp i den valde databasen.

## Innhaldstype

Avgjer om datakjelda skal vera ein eksisterande databasetabell eller ei spørjing, eller om skjemaet skal lagast ut frå ei SQL-setning.

Viss du vel «Tabell» eller «Spørjing», vil skjemaet visa til tabellen eller spørjinga du har vald under Innhald. Viss du vil laga ei ny spørjing eller eit underskjema, må du velja «SQL-kommando». Du kan då skriva inn uttrykket for SQL-spørjinga eller underskjemaet direkte i Listeinnhald på fana «Data» i eigenskapane til kontrollelementet.

## Legg berre til data

Avgjer om skjemaet berre skal tillata at nye data vert lagt til (Ja) eller om det óg skal tillata andre eigenskapar (Nei).

Viss Legg berre til data er sett til «Ja», er det ikkje mogleg å endra eller sletta data.

## Lenk saman hovudfelta

Viss du lagar eit underskjema, skriv du inn datafeltet i det overordna skjemaet som er ansvarleg for synkroniseringa mellom overordna og underordna skjema. Du kan setja inn fleire verdiar ved å trykkja på Shift + Enter etter kvar innskrivingslinje.

Underskjemaet er basert på ei SQL-spørjing av typen parameterspørjing. Dersom eit feltnamn er skrive i Lenk saman hovudfelta, vert dataa frå feltet lagde inn i ein variabel som du må skriva inn i Lenk saman slavefelta. I eit tilsvarande SQL-uttrykk, vert denne variabelen samanlikna med tabelldataa som underskjemaet viser til. Du kan òg skriva inn kolonnenamnet i Lenk saman hovudfelta.

Studer dette eksempelet:

Databasetabellen som skjemaet er basert på er ein kundedatabase («Kunde») der kvar kunde har eit unikt nummer i datafeltet «KundeID». Ordrane til kundane ligg i ein annan tabell. Du vil nå sjå ordrane til kvar kunde etter å ha skrive dei inn i skjemaet. Til dette kan du bruka eit underskjema. Under Lenk saman hovudfelta skriv du inn det datafeltet frå kundedatabasen som identifiserer kunden, altså «KundeID». Under Lenk saman slavefelta skriv du inn namnet på ein variabel som skal motta data frå «KundeID», for eksempel «x».

Underskjemaet bør visa data frå ordretabellen («Ordre») for kvar kunde-ID (KundeID → x). Dette er berre mogleg dersom kvar ordre er unikt tilordna éin kunde i ordretabellen. Du kan også bruka eit anna felt kalla «KundeID», men for å hindra at det vert forveksla med det same feltet frå hovudskjemaet, kallar vi det «Kundenummer».

Nå samanliknar du «Kundenummer» i «Ordre»-tabellen med «KundeID» frå «Kundar»-tabellen. Det kan du for eksempel gjera ved hjelp av variabelen x og dette SQL-uttrykket:

SELECT * FROM Ordrar WHERE Kundenummer =: x (Dersom du vil at underskjemaet skal visa alle dataa frå ordretabellen.)

eller:

SELECT Element FROM Ordre WHERE Kundenummer =: x (Dersom du vil at underskjemaet frå ordretabellen berre skal visa dataa som ligg i feltet «Element».)

SQL-uttrykket kan anten skrivast i feltet Datakjelde eller lagast som ei parameterspørjing som du kan bruka til å laga underskjemaet.

## Lenk saman slavefelta

Viss du lagar eit underskjema, skriv inn variabelen som moglege verdiar frå hovudskjemaet skal lagrast i. Dersom eit underskjema er basert på ei spørjing, skriv du inn variabelen du oppgav i spørjinga. Om du vil oppretta eit skjema ved hjelp av ei SQL-setning skrive inn i feltet Datakjelde, skriv du inn variabelen du brukte i setninga. Du kan velja variabelnamn fritt. Trykk «Shift + Enter» om du vil skriva inn fleire verdiar.

Dersom du for eksempel har vald databasefeltet «KundeID» som foreldrefelt under Lenk saman hovudfelta, kan du velja namnet på variabelen der verdiane frå «KundeID» skal lagrast under Lenk saman slavefelta. Dersom du no brukar denne variabelen i eit SQL-uttrykk i feltet Datakjelde, vert dei relevante verdiane viste i underskjemaet.

## Navigasjonslinje

Bestemmer om navigasjonsfunksjonane på den nedste skjemalinja kan brukast eller ei.

Alternativet «Overordna skjema» vert brukt til delskjema. Viss du vel dette alternativet for eit delskjema, kan du bruka postane i hovudskjemaet til å navigera viss markøren står i delskjemaet. Eit delskjema er lenkja til det overordna skjemaet i eit 1:1-forhold, slik at navigeringa alltid skjer i det overordna skjemaet.

## Skift

Bestemmer korleis tabulatortasten skal kunna brukast til navigasjon. Du kan flytta framover i skjemaet ved hjelp av tabulatortasten. Om du samtidig held nede «Shift», går du bakover. Om du når siste (eller første) felt og trykkjer tabulatortasten att, kan ulike ting skje. Du har desse alternativa når det gjeld tastekontrollelementet:

Alternativ | Tyding
--- | ---
Standard | Denne innstillinga lagar automatisk ein syklus som følgjer ei databaselenkje: Dersom skjemaet inneheld ei databaselenkje, vil tabulatortasten som standard skifta til neste eller førre post når du går ut av det siste feltet (sjå «Alle postar»). Dersom skjemaet ikkje har noka databaselenkje, vert det neste eller førre skjemaet vist (sjå «Denne sida»).
Alle postar | Denne innstillinga gjeld berre for databaseskjema og vert brukt til å navigera gjennom alle datapostane. Dersom du går ut av det siste feltet med tabulatortasten, vert dataposten endra.
Denne dataposten | Denne innstillinga gjeld berre for databaseskjema og vert brukt til å navigera gjennom alle datapostane. Dersom du går ut av det siste feltet med tabulatortasten, vert dataposten endra.
Denne sida | Når du går ut av det siste feltet i eit skjema, går skrivemerket til det første feltet i det neste feltet. Dette er vanleg for HTML-skjema.

## Sorter

Spesifiserar vilkåra for sortering av dataa i skjemaet. Sorteringa følgjer SQL-reglar, utan å bruka «ORDER BY»-vilkåret. Om du for eksempel vil at alle postar i ein database skal sorterast i eit felt i stigande rekkjefølgje og i eit anna felt i fallande rekkjefølgje, skriv du inn «Fornamn ASC, Namn DESC» (dersom namna på datafelta er «Namn» og «Fornamn»).

Nokre av knappane på verktøylinja Skjemanavigasjon kan brukast til sortering i brukarmodus: Sorter stigande, Sorter fallande, Sorter.

## Tillat endringar

Bestemmer om dataa kan endrast.

## Tillat sletting

Bestemmer om dataa kan slettast.

## Tillat tillegg

Bestemmer om det kan leggjast til data.

## Kva er eit underskjema?

Skjema vert laga ut frå databasetabellar eller databasespørjingar. Dei viser informasjonen på ein oversiktleg måte, og du kan skriva inn eller endra data i skjemaet.

Dersom du treng eit skjema som både kan visa til data i ein tabell eller ei spørjing og i tillegg visa data frå ein annan tabell, bør du laga eit underskjema. Dette underskjemaet kan for eksempel vera eit tekstfelt som viser data frå ein annan databasetabell.

Eit underskjema er ein tilleggskomponent i hovudskjemaet. Av og til vert hovudskjemaet kalla «overordna skjema» eller «foreldreskjema». Du får bruk for underskjema så snart du vil ha tilgang til meir enn éin tabell i eit skjema. Kvar ekstra tabell krev eit eige underskjema.

Etter at eit skjema er laga, kan det gjerast om til eit underskjema. For å gjera dette, går du til utformingsmodus og opnar skjemastrukturen. Der dreg du eit skjema (som skal gjerast til underskjema) over til eit anna skjema (som vert til hovudskjemaet).

Brukaren av dokumentet vil ikkje kunna sjå at skjemaet har underskjema. Det einaste brukaren ser er eit dokument der data kan skrivast inn eller visast fram.

Vel hovudfeltet som skal lenkjast frå datafelta i hovudskjemaet. I underskjemaet kan du setja slavefeltet som eit felt som skal tilpassast innhaldet i hovudfeltet.

Når brukaren blar gjennom dataa, viser skjemaet alltid den gjeldande dataposten. Dersom skjemaet inneheld underskjema, vert innhaldet i dei vist etter ei kort forseinking på om lag 200 ms. Denne forseinkinga gjer at du raskt kan bla gjennom datapostane i hovudskjemaet. Så lenge du blar vidare til den neste posten før tidsgrensa, slepp systemet å henta og visa fram data frå underskjemaet.