🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!
>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
n:m Beziehung
-
Freischreiber
- * LO-Experte *
- Beiträge: 866
- Registriert: Fr 28. Mär 2014, 10:41
Re: n:m Beziehung
Nochn Problem:
Für so ein Listenfeld erstelle ich eine Abfrage, die Firma, Nachname, Vorname anzeigen soll:
SELECT "Firma" || ', ' || "Nachname" || ', ' || "Vorname" AS "Name", "ID" FROM "t-adressen"
Macht sie auch, ABER: in dem Listenfeld erscheinen nur die Adressen, wo überhaupt eine "Firma" angegeben ist, die anderen Adressen werden als leere Zeile angezeigt. Kann man das ändern?
Danke und Gruß
Freischreiber
Für so ein Listenfeld erstelle ich eine Abfrage, die Firma, Nachname, Vorname anzeigen soll:
SELECT "Firma" || ', ' || "Nachname" || ', ' || "Vorname" AS "Name", "ID" FROM "t-adressen"
Macht sie auch, ABER: in dem Listenfeld erscheinen nur die Adressen, wo überhaupt eine "Firma" angegeben ist, die anderen Adressen werden als leere Zeile angezeigt. Kann man das ändern?
Danke und Gruß
Freischreiber
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Re: n:m Beziehung
Hallo Freischreiber,
Das dürfte reichen. Willst Du stattdessen direkt mit dem Nachnamen anfangen:
Gruß
Robert
Code: Alles auswählen
SELECT IFNULL("Firma", 'keine Firma') || ', ' || "Nachname" || ', ' || "Vorname" AS "Name", "ID" FROM "t-adressen"Code: Alles auswählen
SELECT IFNULL("Firma" || ', ' , '')|| "Nachname" || ', ' || "Vorname" AS "Name", "ID" FROM "t-adressen"Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
Freischreiber
- * LO-Experte *
- Beiträge: 866
- Registriert: Fr 28. Mär 2014, 10:41
Re: n:m Beziehung
Hallo Robert,
manchmal komm ich doch selber auf was:
Weil auch Nachname oder Vorname mal leer sein können bei mir. *stolz*
Cool, || im Ifnull bringt das Komma am Anfang zum Verschwinden... danke!
manchmal komm ich doch selber auf was:
Code: Alles auswählen
SELECT IFNULL( "Firma", '' ) || ', ' || IFNULL( "Nachname", '' ) || ', ' || IFNULL( "Vorname", '' ) AS "Name", "ID" FROM "t-adressen"Cool, || im Ifnull bringt das Komma am Anfang zum Verschwinden... danke!
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
-
Freischreiber
- * LO-Experte *
- Beiträge: 866
- Registriert: Fr 28. Mär 2014, 10:41
Re: n:m Beziehung
Hallo F3K Total,
zu deinem Beispiel von oben
M_N_KUNDEN_AUFTRAEGE.zip, http://www.libreoffice-forum.de/downloa ... hp?id=2453
hab ich jetzt doch noch eine Frage: Das sind ja offenbar zwei Hauptformulare nebeneinander auf demselben Formulardokument. So hab ich das noch nie gesehen. Kann man über so ein "Doppelformular" eventuell alle Daten, die man braucht, mit einem Makro in einen Brief bekommen? (Adresse, Fax, Mail, Auftragsnummer)
Bisher nehme ich dafür dieses Textfieldmakro:
Ich habe es noch nicht ausprobiert, weil mein Formular noch nicht so weit ist, aber: kann so etwas gehen?
Gruß
Freischreiber
zu deinem Beispiel von oben
M_N_KUNDEN_AUFTRAEGE.zip, http://www.libreoffice-forum.de/downloa ... hp?id=2453
hab ich jetzt doch noch eine Frage: Das sind ja offenbar zwei Hauptformulare nebeneinander auf demselben Formulardokument. So hab ich das noch nie gesehen. Kann man über so ein "Doppelformular" eventuell alle Daten, die man braucht, mit einem Makro in einen Brief bekommen? (Adresse, Fax, Mail, Auftragsnummer)
Bisher nehme ich dafür dieses Textfieldmakro:
Code: Alles auswählen
Sub Textfieldmakro
oDoc = thisComponent
oForm = oDoc.Drawpage.Forms(0)
oFormKontakt = oForm.getbyname("FormKontakt")
oColumns = oForm.Columns
nKontakt = oFormKontakt.getint(oFormKontakt.findcolumn("KontaktartID"))
scurrentKontakt = oFormKontakt.getString(oFormKontakt.findcolumn("Nummer"))
select case nKontakt
case 3
scurrentKontakt = "per Fax: " & scurrentKontakt
case 6
scurrentKontakt = "per Mail: " & scurrentKontakt
Case else
scurrentKontakt = ""
end select
REM Pfad zur Vorlage zusammensetzen
Globalscope.BasicLibraries.loadLibrary("Tools")
sURL = oDoc.Parent.URL
sURL = DirectoryNameoutofPath(sURL,"/") & "/"
sURL = sURL & "Musterdatenbank Briefvorlage.ott"
REM Vorlage öffnen
Dim args(0) as new com.sun.star.beans.PropertyValue
args(0).Name = "AsTemplate"
args(0).Value = True
newDoc = StarDesktop.loadComponentFromURL(sURL,"_blank",0,args)
REM Textfelder holen
enumTextfields = newDoc.Textfields.createEnumeration
Do While enumTextfields.hasMoreElements
thisTextfield = enumTextfields.nextElement
If thisTextfield.supportsService("com.sun.star.text.TextField.JumpEdit") Then
sColumnname = thisTextfield.PlaceHolder
if thisTextfield.PlaceHolder = "Kontakt" Then 'Sonderfall vom Unterformular kommt
thisTextfield.Anchor.String = scurrentKontakt
end if
If oColumns.hasByName(sColumnname) Then
nIndex = oForm.findColumn(sColumnname)
thisTextfield.Anchor.String = oForm.getString(nIndex)
End If
End If
Loop
End Sub
Gruß
Freischreiber
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Re: n:m Beziehung
Hi,
klar, alles was an Daten aus der Datenbank in den vier Formularen abgefragt wird (Datenquelle pro Formular-> siehe Reiter Daten der Formulareigenschaften)
kann auch per Makro abgefragt werden, du bekommst Zugriff auf die Formulare mit z.B.dann kannst Du die Spalten wieder mit z.B.
auslesen.
Gruß R
klar, alles was an Daten aus der Datenbank in den vier Formularen abgefragt wird (Datenquelle pro Formular-> siehe Reiter Daten der Formulareigenschaften)
kann auch per Makro abgefragt werden, du bekommst Zugriff auf die Formulare mit z.B.
Code: Alles auswählen
oFormKUNDEN = thisComponent.Drawpage.Forms.getbyName("KUNDEN")
oFormKUNDEN_AUFTRAEGE = oFormKUNDEN.getbyName("KUNDEN_AUFTRAEGE") 'Unterformular von oFormKUNDEN
oFormAUFTRAEGE = thisComponent.Drawpage.Forms.getbyName("AUFTRAEGE")
oFormAUFTRAEGE_KUNDEN = oFormAUFTRAEGE.getbyName("AUFTRAEGE_KUNDEN")'Unterformular von oFormAUFTRAEGECode: Alles auswählen
sNachname = oFormKUNDEN.getstring(oFormKUNDEN.findcolumn("Nachname"))Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
-
Freischreiber
- * LO-Experte *
- Beiträge: 866
- Registriert: Fr 28. Mär 2014, 10:41
Re: n:m Beziehung
Hi,
vielen Dank für die konkreten Hinweise! Da gehe ich ran, sobald die Formulare fertig sind und die Stimmung paßt... Makros sind böhmische Dörfer für mich.
Gruß
Freischreiber
vielen Dank für die konkreten Hinweise! Da gehe ich ran, sobald die Formulare fertig sind und die Stimmung paßt... Makros sind böhmische Dörfer für mich.
Gruß
Freischreiber
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan
Freischreiber nutzt seit 1/2025 LibreOffice 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️