Hallo,
ich hoffe mal, ich habe einen einigermaßen passendes Betreff für meine Anfrage gefunden. Ich hatte diese Anfrage bereits im Forum Programmierung gepostet, jedoch habe ich dort dann erfahren, dass die Anfrage wohl besser in den Base Bereich passt.
Ich schreibe gerade an einer Datenbank auf der Grundlage eines externen HSQL-DB (2.3.4). Ich habe mich für eine externe Variante entschieden, weil ich auf jeden Fall die Daten von der ODB Datei getrennt gespeichert haben wollte, evtl. soll das ganze später auch noch als multiuser-Version laufen können. Nun gut, da bin ich aber zur Zeit noch nicht.
Ich habe mich dazu entschlossen, einige der Daten nicht über ein Formular einzugeben, sondern über individuell gestaltete Dialoge. Dazu verwende ich die Makrosprache LibreOffice-Basic.
Nun stehe ich vor der Herausforderung, dass ich den Dialog per Button aus einem Formular heraus starte. Klappt auch gut... Nur ich muss nun die Daten des zugrundeliegenden Formulare an den Dialog übertragen und komme da gerade nicht wirklich weiter.
Das jemand hier aus dem Forum so etwas mal gemacht und kann mir da eine Idee oder Richtung vorgeben?
Grüße
Jensemann
🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Daten aus einem Datenbank Formular an einen Basic Dialog senden?
Daten aus einem Datenbank Formular an einen Basic Dialog senden?
LibreOffice 5.2.3 Linux Mint 18 Cinnamon 32 Bit
Re: Daten aus einem Datenbank Formular an einen Basic Dialog senden?
Hallo Jensemann,
an die Daten aus einem Formular kommst Du über die damit verbundene Datenquelle ran. Hier nur eins der Beispiele aus dem Handbuch:
In dem Formular ist eine Tabelle/Abfrage hinterlegt, die in der ersten Spalte eine Integer-Zahl (Datenbank-Integer > Basic-Long), in der zweiten Spalte einen Namen usw. stehen hat.
Du sendest also nicht von dem Formular aus an den Dialog, sondern Du liest die Daten aus dem Formular per Basic aus.
Ebenfalls aus dem Handbuch, jetzt aber in einem Dialog und von den Bezeichnungen her ein bisschen angepasst:
Lade Dir einfach das aktuelle Handbuch herunter. Da habe ich in der Fassung für LO 5.1 auch Dialoge beschrieben, die aufzeigen, wie mit Dialogen Daten bearbeitet werden können.
Gruß
Robert
an die Daten aus einem Formular kommst Du über die damit verbundene Datenquelle ran. Hier nur eins der Beispiele aus dem Handbuch:
Code: Alles auswählen
DIM ID AS LONG
DIM sName AS STRING
DIM dValue AS CURRENCY
DIM dEintritt AS NEW com.sun.star.util.Date
ID = oForm.getLong(1)
sName = oForm.getString(2)
dValue = oForm.getDouble(4)
dEintritt = oForm.getDate(7)
Du sendest also nicht von dem Formular aus an den Dialog, sondern Du liest die Daten aus dem Formular per Basic aus.
Ebenfalls aus dem Handbuch, jetzt aber in einem Dialog und von den Bezeichnungen her ein bisschen angepasst:
Code: Alles auswählen
oDialog2.getControl("NumericField1").Value = ID
oDialog2.getControl("TextField1").Text = sName
Gruß
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
Re: Daten aus einem Datenbank Formular an einen Basic Dialog senden?
Hallo Robert,
vielen Dank für Deine Antwort.
Mit Deinem Handbuch arbeite ich gerade, und habe es auch gerade geschafft, Daten aus Feldern eines Formulars an einen Dialog zu übertragen.
Es ging dann letztendlich mit:
Es wird der Inhalt des Formularfeldes "txt_vorname" im Feld "Label1" des Dialoges ausgegeben.
Den Abschnitt über die Dialoge hatte ich noch nicht entdeckt, ich werde mir das auf jeden Fall auch noch durchlesen.
Vielen Dank für die Unterstützung.
Jensemann
vielen Dank für Deine Antwort.
Mit Deinem Handbuch arbeite ich gerade, und habe es auch gerade geschafft, Daten aus Feldern eines Formulars an einen Dialog zu übertragen.
Es ging dann letztendlich mit:
Code: Alles auswählen
Sub dlg_Form_Database_show
DialogLibraries.LoadLibrary("Standard")
oDialog = CreateUnoDialog( DialogLibraries.Standard.dlg_db_Formular )
oDialogModel = oDialog.Model
oLabel = oDialog.GetControl("Label1")
oLabel.Text = "Text aus dem Code!"
Rem *** Zugriff auf die aktuelle Datenbank im Formular
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.GetbyName("Adressen")
oSubForm = oForm.GetbyName("Produkte")
frm_Feld_Vorname = oForm.GetbyName("txt_vorname")
inhalt = frm_Feld_Vorname.text
oLabel = oDialog.GetControl("Label1")
oLabel.Text = "Der Inhalt des Feldes txt_vorname: " & inhalt
oDialog.Execute()
end sub
Den Abschnitt über die Dialoge hatte ich noch nicht entdeckt, ich werde mir das auf jeden Fall auch noch durchlesen.
Vielen Dank für die Unterstützung.
Jensemann
LibreOffice 5.2.3 Linux Mint 18 Cinnamon 32 Bit
Re: Daten aus einem Datenbank Formular an einen Basic Dialog senden?
Hallo Robert,
habe gerade das Kapitel über Dialoge quer gelesen, prima, das wird mir bei noch kommenden Dingen mit der Datenbank helfen.
Vielen Dank für Deine Arbeit an dem wirklich sehr guten Handbuch.
habe gerade das Kapitel über Dialoge quer gelesen, prima, das wird mir bei noch kommenden Dingen mit der Datenbank helfen.
Vielen Dank für Deine Arbeit an dem wirklich sehr guten Handbuch.
LibreOffice 5.2.3 Linux Mint 18 Cinnamon 32 Bit
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.