Innhold

# Data

Fanen Data styrer skjemaegenskapene som refererer til databasen som er lenket til skjemaet.

Velger datakilden som skjemaet er basert på, eller velger om brukeren kan redigere dataene. Bortsett fra funksjoner for sortering og filtrering, finner du også alle egenskapene som er nødvendig for å lage et underskjema.

For å bruke denne funksjonen …

Åpne kontekstmenyen for et valgt skjemaelement - velg Skjemaegenskaper - Data-fanen.

Åpne verktøylinjen Skjemadesign, klikk på ikonet Skjemaegenskaper - kategorien Data.

## Analyser SQL-kommando

Angir om SQL-setningen skal analyseres av LibreOffice. Hvis satt til Ja, kan du klikke på ...-knappen ved siden av Innhold listeboksen. Dette vil åpne et vindu der du grafisk kan lage en databasespørring. Når du lukker vinduet, vil SQL-setningen for den opprettede spørringen settes inn i Innhold-listeboksen.

## Datakilde

Definerer datakilden som skjemaet skal referere til. Hvis du klikker på ...-knappen, anroper du Åpne dialogen, der du kan velge en datakilde.

## Filter

Angi de nødvendige betingelsene for å filtrere dataene i skjemaet. Filterspesifikasjonene følger SQL-regler uten å bruke WHERE-leddet. Hvis du for eksempel vil vise alle poster med "Mike"-fornavnet, skriv inn i datafeltet: Forename = 'Mike'. Du kan også kombinere betingelser: Fornavn = 'Mike' OR Fornavn = 'Peter'. Alle poster som samsvarer med en av disse to betingelsene vil bli vist.

Filterfunksjonen er tilgjengelig i brukermodus gjennom AutoFilter og Standardfilter-ikoner på Skjemanavigeringslinjen.

## Innhold

Bestemmer innholdet som skal brukes for skjemaet. Innholdet kan være en eksisterende tabell eller en spørring (tidligere opprettet i databasen), eller det kan være definert av en SQL-setning. Før du skriver inn et innhold, må du definere den nøyaktige typen i Innholdstype.

Hvis du har valgt enten «Tabell» eller «Spørring» som Innholdstype, viser denne listen alle tabellene og spørringene som er satt opp i den valgte databasen.

## Innholdstype

Angi om datakilden skal være en databasetabell eller en spørring, eller om skjemaet skal bli laget ut fra en SQL-setning.

Hvis du velger «Tabell» eller «Spørring», vil skjemaet vise til tabellen eller spørringen du har valgt under Innhold. Hvis du vil lage en ny spørring eller et underskjema, må du velge «SQL-kommando». Du kan da skrive inn uttrykket for SQL-spørringen eller underskjemaet direkte i Listeinnhold på fanen «Data» i egenskapene til kontrollelementet.

## Legg bare til data

Avgjør om skjemaet bare tillater tillegg av nye data (Ja) eller om det også tillater andre egenskaper (Nei).

Hvis Legg bare til data er sett til «Ja», er det ikke mulig å endre eller slette data.

## Lenk sammen hovedfeltene

Hvis du oppretter et underskjema, skriver du inn datafeltet til det overordnede skjemaet som er ansvarlig for synkronisering mellom overordnet og underskjema. For å angi flere verdier, trykk Shift + Enter etter hver inndatalinje.

Underskjemaet er basert på et SQL-spørring; mer spesifikt, på en Parameter Query. Hvis et feltnavn er angitt i boksen Link master fields, leses dataene i det feltet i hovedskjemaet til en variabel som du må angi i Link slavefelt . I en passende SQL-setning sammenlignes denne variabelen med tabelldataene som underskjemaet refererer til. Alternativt kan du skrive inn kolonnenavnet i boksen Koblingsmasterfelt.

Studer det følgende eksemplet:

Databasetabellen som skjemaet er basert på er en kundedatabase («Kunde») der hver kunde har et unikt nummer i datafeltet «KundeID». Ordrene til kundene ligger i en annen tabell. Du vil nå se ordrene til hver kunde etter å ha skrevet dem inn i skjemaet. Til dette kan du bruke et underskjema. Under Lenk sammen hovedfeltene skriv du inn det datafeltet fra kundedatabasen som identifiserer kunden, altså «KundeID». Under Lenk sammen slavefeltene skriv du inn navnet på en variabel som skal motta data fra «KundeID», for eksempel «x».

Underskjemaet bør vise data fra ordretabellen («Ordre») for hver kunde-ID (KundeID → x). Dette er bare mulig dersom hver ordre er unikt tilordna én kunde i ordretabellen. Du kan også bruke et annet felt kalt «KundeID», men for å hindre at det blir forvekslet med det samme feltet fra hovedskjemaet, kaller vi det «Kundenummer».

Nå sammenlikner du Kundenummer i «Ordre»-tabellen med KundeID fra «Kunder»-tabellen. Det kan du for eksempel gjøre ved hjelp av variabelen x og det følgende SQL-uttrykket:

SELECT * FROM Ordre WHERE Kundenummer =: x (Dersom du vil at underskjemaet skal vise alle datene fra ordretabellen.)

eller:

SELECT Element FROM Ordre WHERE Kundenummer =: x (Dersom du vil at underskjemaet fra ordretabellen bare skal vise datene som ligger i feltet «Element».)

SQL-uttrykket kan enten skrives inn i feltet Datakilde eller lages som en parameterspørring du kan bruke til å lage underskjemaet.

## Lenk sammen slavefeltene

Hvis du oppretter et underskjema, skriv inn variabelen der mulige verdier fra det overordnede skjemafeltet kan lagres. Hvis et underskjema er basert på en spørring, skriv inn variabelen du definerte i spørringen. Hvis du oppretter et skjema ved å bruke en SQL-setning angitt i Datakilde-feltet, skriver du inn variabelen du brukte i setningen. Du kan velge hvilket som helst variabelnavn. Hvis du vil angi flere verdier, trykk Shift + Enter.

Dersom du for eksempel har valgt databasefeltet «KundeID» som foreldrefelt under Lenk sammen hovedfeltene, kan du velge navnet på variabelen der verdiene fra «KundeID» skal lagres under Lenk sammen slavefeltene. Dersom du nå bruker denne variabelen i et SQL-uttrykk i feltet Datakilde, blir de relevante verdiene vist i underskjemaet.

## Navigasjonslinje

Spesifiserer om navigasjonsfunksjonene i den nedre skjemalinjen kan brukes.

Alternativet «Overordnet skjema» brukes til delskjemaer. Hvis du velger dette alternativet for et delskjema, kan du bruke postene i hovedskjemaet til å navigere hvis markøren står i delskjemaet. Et delskjema er lenket til det overordnede skjemaet i et 1:1-forhold, slik at navigering alltid skjer i det overordnede skjemaet.

## Sorter

Spesifiserer betingelsene for å sortere dataene i skjemaet. Spesifikasjonen av sorteringsbetingelsene følger SQL-regler uten bruk av ORDER BY-klausulen. For eksempel, hvis du vil at alle poster i en database skal sorteres i ett felt i stigende rekkefølge og i et annet felt i et synkende felt. rekkefølge, skriv inn Fornavn ASC, Navn DESC (forutsatt at Fornavn og Navn er navnene på datafeltene).

Noen av knappene på verktøylinjen Skjemanavigasjon kan brukes til sortering i brukermodus: Sorter stigende, Sorter synkende, Sorter.

## Syklus

Angir hvordan navigeringen skal gjøres ved hjelp av tabulatortasten. Ved å bruke tabulatortasten kan du gå videre i skjemaet. Hvis du samtidig trykker på Shift-tasten, vil navigasjonen følge motsatt retning. Hvis du kommer til det siste (eller det første) feltet og trykker på tabulatortasten igjen, kan det ha ulike effekter. Definer nøkkelkontrollen med følgende alternativer:

Alternativ | Betydning
--- | ---
Standard | Denne innstillingen lager automatisk en syklus som følger en databaselenke: Hvis skjemaet inneholder en databaselenke, vil tabulatortasten som standard skifte til neste eller forrige post når du går ut av det siste feltet (se «Alle poster»). Hvis skjemaet ikke har noen databaselenke, blir det neste eller forrige skjemaet vist (se «Denne siden»).
Alle poster | Dette alternativet gjelder bare for databaseskjemaer, og brukes til å navigere gjennom alle postene. Hvis du går ut av det siste feltet i et skjema med tabulatortasten, endres den gjeldende posten.
Denne posten | Dette alternativet gjelder bare for databaseskjemaer, og brukes til å navigere innenfor den gjeldende posten. Hvis du går ut av det siste feltet i et skjema med tabulatortasten, endres den gjeldende posten.
Denne siden | Når du går ut av det siste feltet i et skjema, går markøren til det første feltet i det neste skjemaet. Dette alternativet er særlig relevant for HTML-skjemaer, fordi dette er standard virkemåte i HTML-skjemaer.

## Tillat endringer

Angir om dataene kan endres.

## Tillat slettinger

Avgjør om dataene kan slettes.

## Tillat tillegg

Angir om data kan legges til.

## Hva er et underskjema?

Skjemaer blir lagd ut fra databasetabeller eller databasespørringer. De viser informasjonen på en oversiktlig måte, og du kan skrive inn eller endre data i skjemaet.

Hvis du trenger et skjema som kan referere til dataene i en tabell eller spørring og i tillegg kan vise data fra en annen tabell, bør du opprette et underskjema. Dette underskjemaet kan for eksempel være en tekstboks som viser dataene til en annen databasetabell.

Et underskjema er en tilleggskomponent i hovedskjemaet. Av og til blir hovedskjemaet kalt «overordnet skjema» eller «foreldreskjema». Du får bruk for underskjemaer så snart du vil ha tilgang til mer enn én tabell i et skjema. Hver ekstra tabell krever et eget underskjema.

Når du har laget et skjema, kan du gjøre det om til et underskjema. Du kan gjøre dette ved å gå til utformingsmodus og åpne Skjemastruktur. Der drar du et skjema (som skal bli et underskjema) over til et annet skjema (som skal bli hovedskjemaet).

De som bruker dokumentet, kan ikke se at skjemaet har underskjemaer. Det eneste brukeren ser, er et dokument der data kan skrives inn eller eksisterende data vises.

Velg hovedfeltet som skal lenkes fra datafeltene i hovedskjemaet. I underskjemaet kan du sette slavefeltet som et felt som skal tilpasses innholdet i hovedfeltet.

Når brukeren blar gjennom dataene, viser skjemaet alltid den gjeldende dataposten. Dersom skjemaet inneholder underskjema, blir innholdet i de vist etter en kort forsinkelse på rundt 200 ms. Denne forsinkelsen gjør at du raskt kan bla gjennom datapostene i hovedskjemaet. Så lenge du blar videre til den neste posten innenfor tidsgrensen, slipper systemet å hente og vise fram data fra underskjemaet.