🙏 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. 🤗
Formular-Größe
Formular-Größe
Liebe Libres,
Ich steige zur Zeit von MS-Access auf LO um und mit Base komme ich recht gut voran (bin positiv überrascht!). Leider aber sind die Formulare bei mir immer nur "Vollbild" und ich würde gerne fragen wie ich Pop-ups und Modale Formulare anbringen kann? (Und die Größe dieser Formulare auch bestimmen) Zum Beispiel, ich würde gerne einen Filter setzen und das Filter-Formular als Pop-up einsetzen: Dabei bleibt das Hauptformular immer sichtbar im Hintergrund.
Hat jemand einen Vorschlag, oder ein Link, oder ein "HOWTO" für mich?
Recht vielen Dank,
Alan (in Köln)
Ich steige zur Zeit von MS-Access auf LO um und mit Base komme ich recht gut voran (bin positiv überrascht!). Leider aber sind die Formulare bei mir immer nur "Vollbild" und ich würde gerne fragen wie ich Pop-ups und Modale Formulare anbringen kann? (Und die Größe dieser Formulare auch bestimmen) Zum Beispiel, ich würde gerne einen Filter setzen und das Filter-Formular als Pop-up einsetzen: Dabei bleibt das Hauptformular immer sichtbar im Hintergrund.
Hat jemand einen Vorschlag, oder ein Link, oder ein "HOWTO" für mich?
Recht vielen Dank,
Alan (in Köln)
Re: Formular-Größe
Hallo Alan,
das, was Du suchst, lässt sich nur über Makros erreichen. Du brauchst entweder ein einfaches Eingabefeld (inputbox) - allerdings verschwindet die nach der Eingabe. Oder Du brauchst Dialoge. Ich habe mir so einen Dialog bisher erst einmal geschrieben und entsprechend auch im Handbuch veröffentlicht. Der hatte es dann allerdings gleich in sich.
Vielleicht schaust Du zum Einstieg einmal hier: http://www.starbasicfaq.de/Dialoge.html
Gruß
Robert
das, was Du suchst, lässt sich nur über Makros erreichen. Du brauchst entweder ein einfaches Eingabefeld (inputbox) - allerdings verschwindet die nach der Eingabe. Oder Du brauchst Dialoge. Ich habe mir so einen Dialog bisher erst einmal geschrieben und entsprechend auch im Handbuch veröffentlicht. Der hatte es dann allerdings gleich in sich.
Vielleicht schaust Du zum Einstieg einmal hier: http://www.starbasicfaq.de/Dialoge.html
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: Formular-Größe
Hallo Robert,
Ja, die Dialoge sehen gut aus und das wäre/ist die Perfekte Lösung. Aber kann ich dort (z.B. in einem Listbox) Daten aus einer Datenbanktabelle einbinden?
Mein Ansatz ist Folgendes: Für einen Filter möchte ich eine Liste der Kunden in dem Dialog anzeigen. Hier müsste ich von dem Dialog aus, auf die Kundendaten zugreifen.
Ich habe aber keine Lasche "Daten" bei den Eigenschaften des Listbox gesehen.
Oder müsste ich die Liste programmatisch befüllen? Das geht auch aber ist etwas umständlicher. Falls dies der Fall sein sollte, hätten Sie für mich ein Link zu einem Programmbeispiel?
Vielen Dank für die Hilfe,
Alan
Ja, die Dialoge sehen gut aus und das wäre/ist die Perfekte Lösung. Aber kann ich dort (z.B. in einem Listbox) Daten aus einer Datenbanktabelle einbinden?
Mein Ansatz ist Folgendes: Für einen Filter möchte ich eine Liste der Kunden in dem Dialog anzeigen. Hier müsste ich von dem Dialog aus, auf die Kundendaten zugreifen.
Ich habe aber keine Lasche "Daten" bei den Eigenschaften des Listbox gesehen.
Oder müsste ich die Liste programmatisch befüllen? Das geht auch aber ist etwas umständlicher. Falls dies der Fall sein sollte, hätten Sie für mich ein Link zu einem Programmbeispiel?
Vielen Dank für die Hilfe,
Alan
Re: Formular-Größe
Hallo Alan,
lade Dir einmal das Handbuch und dazu die Beispieldatenbanken herunter. Da steht genau so ein Zugriff für Listenfelder drin. Dort wird mit Hilfe von Dialogen der Inhalt von Tabellen bearbeitet. Nur ist das dadurch, dass wirklich alle Eventualitäten abgefragt werden, ziemlich komplex.
Die Anwendung dafür ist in der Datenbank Medien_mit_Makros.odb enthalten.
Gruß
Robert
lade Dir einmal das Handbuch und dazu die Beispieldatenbanken herunter. Da steht genau so ein Zugriff für Listenfelder drin. Dort wird mit Hilfe von Dialogen der Inhalt von Tabellen bearbeitet. Nur ist das dadurch, dass wirklich alle Eventualitäten abgefragt werden, ziemlich komplex.
Die Anwendung dafür ist in der Datenbank Medien_mit_Makros.odb enthalten.
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: Formular-Größe
Ich leider auch noch nichtasearle hat geschrieben:Ich habe aber keine Lasche "Daten" bei den Eigenschaften des Listbox gesehen.

Das eigentliche Problem bei den Listenfeldern ist nicht die Darstellung, sondern es sind die "nicht verbundenen Daten" - d.h. man kann nicht auf "die ID in Spalte 2" zurückgreifen, wie es bei gebundenen Listenfeldern in normalen Formularen möglich ist, sondern immer nur auf die Zeilennummer der Liste, bzw. den Text der dort steht.asearle hat geschrieben:Oder müsste ich die Liste programmatisch befüllen? Das geht auch aber ist etwas umständlicher. Falls dies der Fall sein sollte, hätten Sie für mich ein Link zu einem Programmbeispiel?
Das einfache Füllen der Listbox "MeineListbox" erfolgt im Dialog "Mein_Dialog" so:
Code: Alles auswählen
oLB = gO_Mein_Dialog.GetControl("MeineListbox")
oLB.addItems(Array("Mueller","Maier"),0)
Sollte man Werte einer Tabelle anzeigen wollen, und im Dialog die ID des dazugehörigen Satzes ermitteln wollen, so ist dies mit einem Resultset möglich, das man so lange "vorrätig" hält so lange der Dialog läuft - dann liest man die selektierte(n) Position(en) aus und sucht die dazugehörigen IDs... (Im angegebenen Beispiel ist die ID in Spalte 2)
Code: Alles auswählen
gO_Mein_Dialog = CreateUnoDialog(Dialoglibraries.Standard.Mein_Dialog)
' Ein Resultset generieren, das die Daten beinhaltet die in die Listbox sollen
oStatement = ThisDatabaseDocument.CurrentController.ActiveConnection.createStatement
oStatement.ResultSetType = com.sun.star.sdbc.ResultSetType.SCROLL_INSENSITIVE
oRes = oStatement.executeQuery("Select Kundenname, KundenID from Kunden;")
'Listbox suchen, das Array "Itemliste" mit der Anzahl der anzuzeigenden Datensaetze definieren und dann befuellen
oLB = gO_Mein_Dialog.GetControl("MeineListbox")
oRes.last
dim Itemliste(cint(oRes.row)-1)
oRes.beforefirst
do while oRes.next
Itemliste(oRes.row-1)=oRes.getstring(1)
loop
'dann die Listbox befuellen:
oLB.addItems(Itemliste(),0)
' ... und den Dialog ausfuehren:
DialogWert = gO_Mein_Dialog.execute()
if DialogWert = 1 then ' ueberprueft ob ueberhaupt etwas ausgewaehlt wurde
if ubound(oLB.getSelectedItemsPos) = -1 then DialogWert = 0
end if
' Folgende Properties von oLB waeren sinnvoll: ...ItemS bei Mehrfachselektion!
'SelectedItem string "Herr Mueller"
'SelectedItemPos integer 2
'SelectedItems ARRAY of Strings
'SelectedItemsPos ARRAY of Integers (Auch wenn nur EINE Zeile ausgewaehlt wurde!)
' Zeiger auf den Datensatz stellen, der in der Listbox ausgewaehlt wurde
' (+ 1) da oLB.SelectedItemPos bei 0 beginnt, das waere aber der Datensatz .beforefirst - den gibt's ja nicht
oRes.absolute(oLB.SelectedItemPos + 1)
msgbox "Ausgewaehlt wurde '" & oLB.SelectedItem & "'. Die Spalte 2 des Resultsets enthaelt den Wert: " & oRes.getstring(2)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Formular-Größe
Vielen Dank für die ausführlichen Informationen. Das ist eine große Hilfe.
Ja, es scheint komplex zu sein aber ich werde probieren.
Melde mich dann mit etwas Feedback.
Vielen Dank,
Alan
Ja, es scheint komplex zu sein aber ich werde probieren.
Melde mich dann mit etwas Feedback.
Vielen Dank,
Alan
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.