Data

Fanebladet Data angiver de formularegenskaber, som referer til den database, der er kædet sammen med formularen.

Bestemmer den datakilde, som formularen er baseret på, eller angiver om data kan redigeres af brugeren. Bortset fra funktionerne sorter og filtrer, kan du også finde alle de nødvendige egenskaber til at oprette en underformular.

For at tilgå denne kommando...

Åbn kontekstmenuen til et valgt formularelement - vælg Formular - Data.

Åbn værktøjslinjen Formularfunktioner eller værktøjslinjen Formulardesign, klik på ikonet Formular - fanebladet Data.


Analyser SQL-kommando

Angiver, om SQL-undtrykket fra LibreOffice skal analyseres. hvis indstillingen er sat til "Ja", kan du klikke på ...-knappen ved siden af listefeltet Indhold. Det åbner et vidue, hvor du grafisk kan oprette en databaseforespørgsel. Når du lukker det vindue, bliver den oprettede forespøgsels SQL-udtryk indsat i listefeltet Indhold.

Cyklus

Bestemmer, hvordan navigationen skal gøres med Tabulator-tasten. Med Tabulator-tasten kan du bevæge dig fremad i formularen. Hvis du samtidig trykker på Skift-tasten, går navigationen i den modsatte retning. Hcis du når den sidste (eller første) felt og trykker på Tabulator-tasten igen, kan det have forskellige virkninger. Definer tastaturkontrollen med følgende indstillinger:

Mulighed

Betydning

Standard

Indstillingen angiver automatisk en cyklus som følger en eksisterende databasekæde: Hvis formularen indeholder en databasekæde, vil tabulatortasten, som standard, initiere et skift til næste eller foregående datapost ved udgang fra det sidste felt (se Alle Dataposter). Hvis der ikke er nogen databasekæde vil næste/forrige formular vises (se Aktuel Side).

Alle dataposter

Denne indstilling gælder kun for databaseformularer og bruges til at navigere gennem alle dataposter. Hvis du bruger tabulatortasten til at forlade det sidste felt i en formular, ændres den aktuelle datapost.

Aktiv datapost

Denne indstilling gælder kun for databaseformularer og bruges til at navigere indenfor den aktuelle datapost. Hvis du bruger tabulatortasten til at forlade det sidste felt i en formular, ændres den aktuelle datapost.

Aktuelle side

Når det sidste felt i en formular forlades, springer markøren til første felt i den næste formular. Det er standard for HTML-formularer. Derfor er denne indstilling specielt relevant for HTML-formularer.


Datakilde

Definerer datakilden, som formularen bør referere til. Hvis du klikker på knappen ..., kalder du dialogen Åbn, hvor du kan vælge en datakilde.

Filter

Indtast den krævede betingelse for at filtrere data i formularen. Filterspecifikationerne følger SQL-regler uden at brugre WHERE-sætningen. Hvis du for eksempel vil vise alle poster med fornavnet "Mikael", indtaster du: Fornavn = 'Mikael' i datafeltet. Du kan også kombinere betingelser: Fornavn = 'Mikael' OR Fornavn = 'Peter'. Alle poster, der matcher én af disse to betingelser, bliver vist.

Filterfunktionen er tilgængelig i brugertilstand gennem ikonerne Autofilter og Standardfilter på værktøjslinjen Formularnavigation.

Indhold

Bestemmer det indhold, der skal bruges til formularen. Indholdet kan være en eksisterende tabel eller en forespørgsel (oprettet tidligere i en database), eller kan defineres af et SQL-udtryk. Før du indtaster et indhold, skal du definere den nøjagtige type i Indholdstype.

Hvis du har valgt enten "Tabel" eller "Forespørgsel" i Indholdstype, vil feltet opremse alle tabeller og forespørgsler, der er konfigureret i den valgte database.

Indholdstype

Angiver om datakilden skal være en eksisterende databasetabel eller -forespørgsel, eller om formularen skal genereres baseret på en SQL-sætning.

Hvis du vælger "Tabel" eller "Forespørgsel", vil formularen henvise til tabellen eller forespørgslen, du angiver under Indhold. Hvis du vil oprette en ny forespørgsel eller en underformular, så er du nødt til at vælge indstillingen "SQL". Du kan derefter indtaste sætningen til SQL-forespørgselen eller underformularen direkte i feltet Listeindhold på fanebladet Data i kontrolelementets egenskaber.

Navigationslinje

Angiver, om navigationsfunktioneerne i den nederste formularlinje kan bruges.

Indstillingen "Forældreformular" bruges til underformularer. Hvis du vælger denne indstilling for en underformular, kan du navigere ved at bruge dataposterne på hovedformularen, hvis markøren er placeret i underformularen. En underformular er kædet til hovedformularen med en 1:1 relation, så navigation bliver altid udført i hovedformularen.

Sammenkæd overordnede felter

Hvis du opretter en underformular, indtaster du det datafelt i dem overordnede formular, som er ansvarlig for synkroniseringen mellem overordnet og underordnet formular. For at indsætte flere værdier trykker du på Skift+Enter efter hver indtastningslinje.

Underformularen er baseret på en SQL forespørgsel; specifikt en Parameter Forespørgsel. Hvis et feltnavn indtastes i feltet Kæd overordnede felter, bliver data, der er indeholdt i feltet i hovedformularen, læst til en variabel, som du skal indtaste i Kæd underordnede felter. I en passende SQL-sætning bliver denne variabel sammenlignet med data fra den tabel, som underformularen henviser til. Alternativt kan du indtaste kolonnens navn i feltet Kæd overordnede felter.

Betragt det følgende eksempel:

Databasetabellen som formularen er baseret på, er, for eksempel en kundedatabase ("Kunde"), hvor alle kunder er tildelt en unikt tal i et datafelt kaldt "Kunde_ID". En kundes ordrer bliver vedligeholdt i en anden databasetabel. Du vil nu se hver kundes ordrer efter at have indtastet dem i formularen. For at gøre dette bør du oprette en underformular. Under Kæd overordnede felter skal du indtaste datafeltet fra kundedatabasen som klart identificerer kunden (Kunde_ID). Under Kæd underordnede felter skal du indtaste navnet på en variabel, som modtager data fra feltet Kunde_ID, for eksempel x.

Underformularen skal vise de tilknyttede data fra ordretabellen ("Ordrer") for hver kunde ID (Kunde_ID -> x). Dette er kun muligt, hvis hver ordre er entydigt knyttet til én kunde i ordretabellen. Alternativt kan du bruge et andet felt kaldt Kunde_ID. For at undgå at dette felt forveksles med samme felt fra hovedformularen, kaldes feltet Kunde_Nummer.

Sammenlign nu Kunde_Nummer i tabellen "Ordrer" med Kunde_ID fra tabellen "Kunde", hvilket for eksempel kan lade sig gøre ved at bruge variablen x med følgende SQL-sætning:

SELECT * FROM Ordrer WHERE Kunde_Nummer =: x (hvis du vil have underformularen til at vise alle data fra ordretabellen)

eller:

SELECT Element FROM Ordrer WHERE Kunde_Nummer =: x (hvis du vil have underformularen fra ordretabellen til kun at vise de data, der er indeholdt i feltet "Element")

SQL-sætningen kan enten indtastes i feltet Datakilde, eller du kan oprette en passende parameter-forespørgsel, som kan bruges til at oprette underformularen.

Sammenkæd underordnede felter

Hvis du opretter en underformular, indsætter du variablen, hvor mulige værdier fra det overordnede formularfelt kan gemmes. Hvis en underformular er baseret på en forespørgsel, indsætter du den variabel, du definerede i forespørgslen. Hvis du opretter en en formular med et SQL-udtryk, indsat i feltet Datakilde, skriver du variablen, du brugte i udtrykket. Du kan vælge et vilkårligt variabelnavn. Hvis du vil have flere værdier, trykker du på Skift + Enter.

Hvis du for eksempel specificerede Kunde_ID'et databasefeltet som en forældrefelt under Kæd overordnede felter, så kan du angive under Kæd underordnede felter navnet på variablen, hvori værdierne på databasefeltet Kunde_ID skal lagres. Hvis du nu specificerer en SQL-sætning i feltet Datakilde ved at bruge denne variabel, vises de relevante værdier i underformularen.

Sorter

Angiver betingelsen som skal sortere data i formularen. Specifikationen for sorteringsbetingleser følger SQL-regler uden at bruge sæstningen ORDER BY. Hvis du for eksempel vil have alle poster i en database sorteret i et felt i stigende orden og i et andet felt i faldende orden, skriver du Fornavn ASC, Efternavn DESC (under den antagelse, at Fornavn og Efternavn er navnene på datafelterne).

De passende ikoner på værktøjslinjen Formularnavigation kan bruges i Brugertilstand til at sortere:Sorter stigende, Sorter faldende, Sorter.

Tilføj kun data

Bestemmer, om formularen alene tillader tilføjelse af nye data (Ja) eller om den også tillader andre egenskaber (Nej).

Noteikon

Hvis Tilføj kun data bliver sat til "Ja", er redigering eller sletning af data ikke muligt.


Tillad sletninger

Bestemmer, om data kan slettes.

Tillad tilføjelser

Bestemmer, om data kan tilføjes.

Tillad ændringer

Bestemmer, om data kan ændres.

Hvad er en underformular?

Formularer bliver oprettet baseret på en databasetabel eller databaseforespørgsel. De viser data på en visuelt behagelig måde og kan bruges til at indtaste data eller redigere data.

Hvis du behøver en formular, som kan referere til data i en tabel eller forespørgsel og desuden kan vise data fra en anden tabel, bør du oprette en underformular. Denne underformular kan for eksempel være et tekstfelt, som viser data fra en anden databasetabel.

En underformular er en ekstra del af hovedformularen. Hovedformularen kaldes også "forældreformular" eller "hovedformular". Underformularer skal bruges, når du ønsker adgang til mere end en enkelt tabel i en formular. Hver yderligere tabel kræver sin egen underformular.

Efter at du har oprettet en formular, kan du ændre den til en underformular. For at gøre dette skal du gå i designtilstand og åbne Formularnavigatoren. I Formularnavigatoren, træk en formular (som skal ændres til en underformular) over på en anden formular (som vil blive en master).

Den person, som bruger dit dokument, vil ikke se, at en formular har underformularer. Brugeren ser kun en formular, hvor data bliver indtastet, eller hvor eksisterende data bliver vist.

Angiv sammenkædningens hovedfelt fra datafelterne i hovedformularen. I underformularen kan sammenkædede felter indstilles som et felt, der skal sammenlignes med indholdet af sammenkædningens hovedfelt.

Når brugeren navigerer gennem data, viser formularen altid den aktuelle datapost. Hvis der er defineret underformularer, vil indholdet af underformularerne blive vist efter en kort forsinkelse på tilnærmelsesvis 200 ms. Denne forsinkelse lader dig gennemse hovedformularens dataposter hurtigt. Hvis du navigerer til næste hoveddatapost indenfor forsinkelsen, behøver underformularens data ikke at blive hentet og vist.