Faq/Base/024
TDF LibreOffice Document Liberation Project Blogs gemeenschap Weblate Nextcloud Redmine Ask LibreOffice Doneren
Hoe kan ik een besturingselement van een formulier de waarde van een tabelveld weer laten geven en de waarde van een ander veld van dezelfde tabel op laten slaan?
Ga naar de ontwerpmodus.
Maak in ontwerpweergave een nieuw besturingselement
- Indien nog niet in ontwerpweergave, activeer die modus door op het betreffende pictogram in de werkbalk Formulier te klikken.
- In de werkbalk Formulierontwerp klik op het pictogram Lijstbesturing, teken daarna het gebied op het formulier om aan te geven waar de controle moet komen te staan.
Deze assistent zou moeten starten om je door het proces te leiden. De andere details staan hieronder.
Gebruik de ontwerpweergave om een bestaand besturingselement te vervangen (bijv. een tekstvak)
- Activateer de ontwerpweergave via de werkbalk Formulier.
- Converteer een bestaand besturingselement in een lijst door met rechts op het element te klikken en in het contextmenu de vervang-optie te kiezen.
Als voorbeeld nemen we een tabel met de naam Client
met de velden ClientName
en de geassocieerde primaire sleutel ClientId
. Wat we willen bereiken is dat op het formulier een lijstveld komt de ClientName maar waar we natuurlijk de overeenkomende ClientID gebruiken in de onderliggende tabel om die waarde elders te schrijven. Het is daarom nodig om te declareren in welk veld de gegevens worden opgeslagen, geassocieerd met een SQL query naar het lijstveld en het instellen van het veld van de tabel dat gebruikt wordt om het veld weer te geven op te slaan.
Om dit te kunnen doen, beginnen we met het tonen van de eigenschappen van het lijstveld besturingselement (formulierontwerp werkbalk, kies het besturingselement met de muis en kies Eigenschappen), kies daarna de tab Gegevens van de dialoog Eigenschappen.
Vul onder Gegevens de naam in van de tabel die voor opslag en het ophalen van gegevens gebruikt moet worden.
Kies Sql als Type lijstinhoud.
Onder Lijstinhoud, tik in SELECT ClientName, ClientId FROM Client
of klik op de link om met de assistent Query een query te maken.
In bovenstaande query, ClientName
is het eerste ontvangen veld, de index is 0, het volgende veld ClientId
is het tweede veld en heeft een index van 1.
De standaardlijst in een lijstbesturingselement is gebaseerd op het eerste geïndexeerde veld, dus met de index 0, in dit voorbeeld met de waarden van ClientName
).
Wat we willen is dat de waarde van ClientId (met index 1) wordt vastgelegd, het is nodig om de waarde 1 in te voeren bij het gekoppelde veld.