🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Formularfeld als Argument an Sub übergeben
Re: Formularfeld als Argument an Sub übergeben
Moin,
das ist nur der Speicherort, in der .odb Datei (Document), und der Typ des Makros (Basic).
Die Werte trägt LO selbst ein, wenn man das Makro auswählt.
Ist nur eine Information.
Gruß R
das ist nur der Speicherort, in der .odb Datei (Document), und der Typ des Makros (Basic).
Die Werte trägt LO selbst ein, wenn man das Makro auswählt.
Ist nur eine Information.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formularfeld als Argument an Sub übergeben
Guten Abend,
ich bleibe mal in diesem thread, da es sich um die gleiche odb handelt.
Ich habe inzwischen zwei Formulare erstellt.
Das erste Formular (frmalleKunden) zeigt im Mainform die Kundendaten,in einem UForm die Hundedaten und in einem weiter Uform die Behandlungstermine/Behandlungsergebnisse . Letzteres Subform ist für die Aktion wahrscheinlich nicht relevant
Vom Uform Hundedaten rufe ich über einen Button mittels
...Sub FormOpenKunden
oDatasource = thisDatabaseDocument.CurrentController
IF NOT (oDatasource.isConnected()) THEN oDatasource.connect()
oConnection = oDatasource.ActiveConnection()
ThisDatabaseDocument.FormDocuments.getByName("frmKunden").open
End Sub...
das im Code eingetragene weiterer Formular frmKunden auf, in dem Details zur Anamnese aufgeführt sind.
Meine Frage : Wie kann man dem Button ein Argument in Form der HundeID mitgeben, damit der entsprechende Datensatz in frmKunden geöffnet wird, dabei soll nach Schliessen des aufgerufenen und eventl. bearbeiteten Datensatzes im frmKunden der Fokus wieder im frmAlleKunden auf dem aufrufenden Datensatz liegen.
Für erneute Hilfe wäre ich sehr dankbar.
Gruß Emandu
ich bleibe mal in diesem thread, da es sich um die gleiche odb handelt.
Ich habe inzwischen zwei Formulare erstellt.
Das erste Formular (frmalleKunden) zeigt im Mainform die Kundendaten,in einem UForm die Hundedaten und in einem weiter Uform die Behandlungstermine/Behandlungsergebnisse . Letzteres Subform ist für die Aktion wahrscheinlich nicht relevant
Vom Uform Hundedaten rufe ich über einen Button mittels
...Sub FormOpenKunden
oDatasource = thisDatabaseDocument.CurrentController
IF NOT (oDatasource.isConnected()) THEN oDatasource.connect()
oConnection = oDatasource.ActiveConnection()
ThisDatabaseDocument.FormDocuments.getByName("frmKunden").open
End Sub...
das im Code eingetragene weiterer Formular frmKunden auf, in dem Details zur Anamnese aufgeführt sind.
Meine Frage : Wie kann man dem Button ein Argument in Form der HundeID mitgeben, damit der entsprechende Datensatz in frmKunden geöffnet wird, dabei soll nach Schliessen des aufgerufenen und eventl. bearbeiteten Datensatzes im frmKunden der Fokus wieder im frmAlleKunden auf dem aufrufenden Datensatz liegen.
Für erneute Hilfe wäre ich sehr dankbar.
Gruß Emandu
Re: Formularfeld als Argument an Sub übergeben
Moin aus dem Norden,
habe im Handbuch Kapitel 9 ab S.16 einen Ansatz gefunden, der mir praktikabel scheint.
Sorry, dass ich erst den bequemeren Weg , hier nach einer Lösung zu fragen, gewählt habe.
Ich melde mich wieder, falls die Infos im Handbuch nicht alle meine Fragen beantworten.
Gruß Emandu
habe im Handbuch Kapitel 9 ab S.16 einen Ansatz gefunden, der mir praktikabel scheint.
Sorry, dass ich erst den bequemeren Weg , hier nach einer Lösung zu fragen, gewählt habe.
Ich melde mich wieder, falls die Infos im Handbuch nicht alle meine Fragen beantworten.
Gruß Emandu
Re: Formularfeld als Argument an Sub übergeben
Moin,
Das klingt gut
. Es wäre natürlich im Sinne des Forums, wenn du nachher auch deine Erkenntnisse mit uns teilen würdest.
Gruß R
Das klingt gut
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formularfeld als Argument an Sub übergeben
Wenn Du einen Filter im Formular(-Objekt) setzt, vergiss nicht ein .reload() anzuhängen!
Code: Alles auswählen
...
oForm = ThisDatabaseDocument.FormDocuments.getByName("frmKunden")
sIDHund = #Hunde-ID aus dem Tebellengrid auslesen
oForm.Filter = "WHERE ID_HUND = '" + sIDHund + "'"
oForm.reload()
...
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: Formularfeld als Argument an Sub übergeben
Moin und vielen Dank für Deinen Tipp gogo.
Bevor ich das gelesen und probiert hatte , habe ich ersteinmal versucht den entsprechenden Wert (HundeID)zu bekommen....
SUB WerteAuslesen
DIM oDatasource AS OBJECT
DIM oConnection AS OBJECT
oForm= ThisDatabaseDocument.FormDocuments.getByName("frmKunden")
oDatasource = thisComponent.Parent.CurrentController
IF NOT (oDatasource.isConnected()) THEN oDatasource.connect()
oConnection = oDatasource.ActiveConnection()
DIM ID AS STRING
ID = oForm.getString(1)
END SUB
liefert mir den Alert ....Eigenschaft oder Methode getString nicht gefunden....
Muss ich noch irgendetwas einbinden ? Ich ging davon aus , dass die Methoden fest definiert und damit verfügbar sind...
Mit getString(1) wollte ich die erste Spalte auslesen...Fehlt mir hier noch eine array Definition für den Index
@gogo
bei deinem Code bekomme ich die gleiche Fehlermeldung Methode Filter nicht gefunden.
Was muss ich tun um auf die Objektmethoden zugreifen zu können ???
Gruß Emandu
Bevor ich das gelesen und probiert hatte , habe ich ersteinmal versucht den entsprechenden Wert (HundeID)zu bekommen....
SUB WerteAuslesen
DIM oDatasource AS OBJECT
DIM oConnection AS OBJECT
oForm= ThisDatabaseDocument.FormDocuments.getByName("frmKunden")
oDatasource = thisComponent.Parent.CurrentController
IF NOT (oDatasource.isConnected()) THEN oDatasource.connect()
oConnection = oDatasource.ActiveConnection()
DIM ID AS STRING
ID = oForm.getString(1)
END SUB
liefert mir den Alert ....Eigenschaft oder Methode getString nicht gefunden....
Muss ich noch irgendetwas einbinden ? Ich ging davon aus , dass die Methoden fest definiert und damit verfügbar sind...
Mit getString(1) wollte ich die erste Spalte auslesen...Fehlt mir hier noch eine array Definition für den Index

@gogo
bei deinem Code bekomme ich die gleiche Fehlermeldung Methode Filter nicht gefunden.
Was muss ich tun um auf die Objektmethoden zugreifen zu können ???
Gruß Emandu
Re: Formularfeld als Argument an Sub übergeben
Moin,
Grundlegend: Neues Thema, neuer Thread!
Wenn du dir mein o.a. Makro genauer angesehen hättest, wüsstest du, wie du an die HundeID kommst: Dabei ist zu beachten, dass das Formulardokument ("frmKunden") nicht das strukturelle Formular ist, was die Daten hält.
Um die Namen der strukturellen Formulare zu sehen, öffnest du im Bearbeitungsmodus den Formularnavigator, da siehst du dann den strukturellen Aufbau.
Sieht z.B. so aus: Gruß R
Grundlegend: Neues Thema, neuer Thread!
Wenn du dir mein o.a. Makro genauer angesehen hättest, wüsstest du, wie du an die HundeID kommst: Dabei ist zu beachten, dass das Formulardokument ("frmKunden") nicht das strukturelle Formular ist, was die Daten hält.
Um die Namen der strukturellen Formulare zu sehen, öffnest du im Bearbeitungsmodus den Formularnavigator, da siehst du dann den strukturellen Aufbau.
Sieht z.B. so aus: Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formularfeld als Argument an Sub übergeben
Hallo R,
zunächst einmal bitte ich um Geduld und Nachsicht, sollte sich eine meiner Fragen im Bereich..."Oh mein Gott, warum fragt der jetzt sowas Simples..." bewegen.
Bei meiner Vorstellung hatte ich auf frühere Erfahrungen im Dantenbankdesign verwiesen , jedoch in einer vollkommen anderen Entwicklungsumgebung. Die Syntax in LibreOffice ist mir komplett neu und ich gebe mir Mühe , dass was ich schreibe / versuche / teste auch zu verstehen. Vielleicht liegt es auch an meinem biblischen Alter , dass das nicht mehr so schnell geht...
Aber um keine Missverständnisse aufkommen zu lassen, ich beschwere mich nicht, ich freue mich über jede fundierte Antwort, habe ich doch schon Foren erlebt ( andere Themenbereiche) in denen man als Neuling , gern mal von oben herab kommentiert wird..... Dieses Gefühl habe ich hier absolut nicht !!!!!
Dieser Codeschnipsel
DIM ID as STRING
oForm.getString(1)
END SUB
ist mir im Handbuch begnet und ich zitiere daraus
"...Der aktuelle Datensatz und seine Daten stehen immer über das Formular zur Verfügung, das
die betreffende Datenmenge (Tabelle, Abfrage, Ansicht (View)) anzeigt... "
Dann habe ich dies wohl falsch interpretiert, wenn ich davon ausgegangen bin, dass ich zum Beispiel in einer for Schleife alle Feldinhalte des aktuell angezeigten Formulars auslesen könnte.
Gib mir doch bitte noch kurz den Tipp warum ich auf die erwähnten Methoden nicht zugreifen kann, bzw. warum die entsprechende Fehlermeldung kommt.
Danke und Gruß
Emandu
zunächst einmal bitte ich um Geduld und Nachsicht, sollte sich eine meiner Fragen im Bereich..."Oh mein Gott, warum fragt der jetzt sowas Simples..." bewegen.
Bei meiner Vorstellung hatte ich auf frühere Erfahrungen im Dantenbankdesign verwiesen , jedoch in einer vollkommen anderen Entwicklungsumgebung. Die Syntax in LibreOffice ist mir komplett neu und ich gebe mir Mühe , dass was ich schreibe / versuche / teste auch zu verstehen. Vielleicht liegt es auch an meinem biblischen Alter , dass das nicht mehr so schnell geht...

Dieser Codeschnipsel
DIM ID as STRING
oForm.getString(1)
END SUB
ist mir im Handbuch begnet und ich zitiere daraus
"...Der aktuelle Datensatz und seine Daten stehen immer über das Formular zur Verfügung, das
die betreffende Datenmenge (Tabelle, Abfrage, Ansicht (View)) anzeigt... "
Dann habe ich dies wohl falsch interpretiert, wenn ich davon ausgegangen bin, dass ich zum Beispiel in einer for Schleife alle Feldinhalte des aktuell angezeigten Formulars auslesen könnte.
Gib mir doch bitte noch kurz den Tipp warum ich auf die erwähnten Methoden nicht zugreifen kann, bzw. warum die entsprechende Fehlermeldung kommt.
Danke und Gruß
Emandu
Re: Formularfeld als Argument an Sub übergeben
Moin,
woher hast du diesen Codeschnipsel?
oForm ist hier das Formulardokument. Das hat keine Eigenschaft .getstring(1). Ich habe es oben beschrieben, die Daten aus der Datenbank bekommst du über die strukturellen Formulare, die sich auf der Drawpage des Formulardokumentes befinden.
Ich empfehle dir xray oder MRI zu verwenden.
Gruß R
woher hast du diesen Codeschnipsel?
oForm ist hier das Formulardokument. Das hat keine Eigenschaft .getstring(1). Ich habe es oben beschrieben, die Daten aus der Datenbank bekommst du über die strukturellen Formulare, die sich auf der Drawpage des Formulardokumentes befinden.
Ich empfehle dir xray oder MRI zu verwenden.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Formularfeld als Argument an Sub übergeben
Moin,
im Handbuch Kapitel 9 Makros S.20 erstes Listing Zeile 6 wird die Variable sName = oForm.getString(1)deklariert.
Ich sage ja...vielleicht interpretiere ich das falsch...ziemliches Glatteis noch für mich
Ich habe jetzt einen anderen Ansatz gewählt , auch aus dem Handbuch , die Variante mit Filtertabelle.
Soweit so gut. Ich habe mein Problem an der relevanten Stelle im Sub als Kommentar eingefügt.
Ich füge die .odb ein und bitte noch einmal um einen Ansatz zur Problemlösung.
Danke und Gruß
Emandu
im Handbuch Kapitel 9 Makros S.20 erstes Listing Zeile 6 wird die Variable sName = oForm.getString(1)deklariert.
Ich sage ja...vielleicht interpretiere ich das falsch...ziemliches Glatteis noch für mich

Ich habe jetzt einen anderen Ansatz gewählt , auch aus dem Handbuch , die Variante mit Filtertabelle.
Soweit so gut. Ich habe mein Problem an der relevanten Stelle im Sub als Kommentar eingefügt.
Ich füge die .odb ein und bitte noch einmal um einen Ansatz zur Problemlösung.
Danke und Gruß
Emandu
- Dateianhänge
-
- TestDogs220525.odb
- (48.71 KiB) 167-mal heruntergeladen
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.