Velden samenvoegen in een rapport (Opgelost)

Bespreek het databaseprogramma
ldk
Berichten: 73
Lid geworden op: di aug 25, 2009 5:27 pm

Velden samenvoegen in een rapport (Opgelost)

Bericht door ldk »

Is er en formule/functie in base om velden te koppelen (bijv. Aanhef -Vltr enof vvgsl enz.) zodat bij geen vvgsl de ruimte wordt opgevuld.

Ldk
Laatst gewijzigd door ldk op di sep 01, 2009 11:38 am, 1 keer totaal gewijzigd.
OpenOffice 3.2.1 op Windows XP
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Velden samenvoegen in een rapport

Bericht door RPG »

Hallo

Er is, voor zover ik weet, geen functie in OpenOffice.org-base die dat doet.
Wel kun je zelf iets maken met de ingebouwde functie van je database engine.
Ik denk dat je beter eerst een query kunt maken die de velden goed maakt voor dat rapport en dan het rapport maken. Overigens ik maak weinig tot geen gebruik van rapporten. Ik zal er een voorbeeld bij doen hoe ik het op gelost heb.

Code: Selecteer alles

SELECT  
-- Compositie van de naam met titels en nog meer zaken
COALESCE("Titel"||' ' ,'') ||
COALESCE("schr_vnaam" || ' ','')
|| COALESCE("tussen"||' ' ,'') 
|| COALESCE("schr_naamvol"||' ','')  
|| COALESCE(' ' || "achter" ,'')  as "Naam" , 
"NAAMID"   
FROM "namen31" "namen31"  

Verklaring
De dubbele rechtopstaande streepjes is de SQL manier op strings bij elkaar te voegen.

Zero length string en NULL waarde string.
Het onderscheid tussen deze twee is klein maar zorgt voor veel verwarring bij mensen die pas met een database beginnen. Deze verwarring komt door het feit dat de database er zover schillend mee omgaat.
Een zero length string is een string met de lengte van 0 letters. maar het is een string.
Een NULL waarde string bestaat feitelijk niet.
Het probleem kom om de hoek kijken bij bewerkingen.
Voorbeeld

Code: Selecteer alles

Constante  || veldwaarde	     geeft  resultaat	
'Romke'       || zero length veld    --->   'Romke'
'Romke'       || null veld                --->   null waarde

Code: Selecteer alles

 COALESCE(' ' || "achter" ,'')
Dit deel kijkt naar een veld uit mijn tabel als het een null waarde veld is dan wordt er een null waarde string door geven anders wordt het veld door gegeven met een spatie. Zie voor gaande uitleg.
Er wordt ook gebruik gemaakt van dubbele aanhalingstekens en enkele aanhalingsteken.
Enkele aanhalingstekens worden gebruikt voor letterlijke woorden.
Dubbele aanhallings tekens worden gebruikt voor variabelen

Testen
Bij het voor het eerst gebruiken van deze testen is het ook verstandig om je tabellen te testen op zero length string en null waardes. Dit is te doen in de query ontwerper. Selecteer de velden die je wilt testen en typ daar in
voor een zero length string : = ''
voor een null waarde : is null of is leeg

Voor een gedetaileerde informatie kijk in de help file. Als je met queries wilt werken is die uitleg onontbeerlijk.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
ldk
Berichten: 73
Lid geworden op: di aug 25, 2009 5:27 pm

Re: Velden samenvoegen in een rapport

Bericht door ldk »

Hallo Romke,

Bedankt voor de aanwijzingen.
Het samenvoegen gaat prima op deze manier. I.p.v. 2 verticale streepjes voor verbinding heb ik een + gezet en dat werkt ook goed.

M.vr. gr.
Ldk
OpenOffice 3.2.1 op Windows XP
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Velden samenvoegen in een rapport

Bericht door RPG »

Hallo
String contatenation should be performed with the standard SQL operator || rather than the non-standard + operator.
De quote komt uit de handleiding van de database engine die het werkt doet in OpenOffice.org-base.
Conform de SQL instructies is het beter als je string wilt samen voegen om "||" te gebruiken en niet "+". Het plus teken moet gebruit worden voor een reken kundige bewerking. Ik weet ook dat string ook samengevoegd worden met een "+" teken maar bij fout zoeken kan het dan veel langer duren voor dat je op het idee op komt.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
eremmel
Berichten: 670
Lid geworden op: di sep 01, 2009 10:11 am
Locatie: Barneveld, Nederland

Re: Velden samenvoegen in een rapport

Bericht door eremmel »

Het gebruik van het plus-teken voor concateneren van string data waarden met velden geeft ook een fout, bv.

Code: Selecteer alles

 SELECT "Titel" + ' string waarde ' FROM "namen31"
W11 21H2 (build 22000), LO 7.4.1.2(x64)
Het is Microsoft marketing die laat geloven dat computers geschikt zijn voor niet technici
Plaats reactie