Wir sind auf Ihre Unterstützung angewiesen!
💚 BITTE helfen Sie uns HEUTE mit einer SPENDE 💚
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] Werte beim Formularaufruf übergeben.
- Anekdoteles
- Beiträge: 7
- Registriert: Mo 10. Jan 2022, 12:27
[gelöst] Werte beim Formularaufruf übergeben.
Hallo zusammen,
seit einiger Zeit versuche ich vergeblich, ein Formular mit einem bestimmten Datensatz aufzurufen.
Ich habe eine Startseite mit einem Listenfeld, in dem ich einen Datensatz auswählen kann. Der Zugriff funktioniert, der Datensatz wird ausgewählt, Details aus dem Datensatz werden in einem Unterformular angezeigt, und ich kann von da aus auch den Datensatz bearbeiten. Es gibt ein zweites Formular (kein Unterformular), wo ich neue Datensätze erfassen kann. Auch das funktioniert. Nun will ich aber aus dem Hauptformular (der Button liegt auf dem Unterformular) dieses zweite Formular aufrufen, wo direkt der ausgewählte Datensatz zum bearbeiten aktiviert ist. Genau das funktioniert nicht.
Nirgendwo habe ich einen Hinweis gefunden, wie ich die Datensatz-ID im Aufruf mitgebe. Ich habe mir schon ein Textfeld angelegt, in dem mir die Datensatz-ID angezeigt wird. Da ich eine Filter-Tabelle habe, die ich schon für das Listenfeld nehme, könnte ich die ID auch dort reinschreiben, um den Wert dann vom anderen Formular auszulesen. Da habe ich keine Variante gefunden, den Wert darin zu speichern, ohne alles andere strubbelig zu machen.
Auch der Versuch, dieses Feld per Makro auszulesen schlug fehl, scheinbar bekomme ich per Makro nicht den richtigen Zugriff auf das Unterformular. Alle Lösungen, die Drawpage nutzen, produzieren eine Fehlermeldung. Genau wie eine oEvent-Lösung (ist beim Sub-Aufruf angegeben), die ich gefunden habe. Der Weg über ...FormDocument.getByName("Hauptformular").getByName("Unterformular") produziert eine Fehlermeldung beim 2. getByName, egal ob ich das wie hier kombiniere, oder in einen getrennten Befehl schreibe. Irgendwelche passenden .uno-Befehle habe ich bisher nicht gefunden (oder ich hab sie nicht verstanden )
Eine Dialog-Lösung habe ich ausgeschlossen, da es da scheinbar keinen direkten Tabellenzugriff zu geben scheint.
Die Makrosicherheit steht auf niedrig, alle Variablen sind per Dim deklariert. Irgendwie hab ich da wohl grad nen Brett vorm Kopf, oder irgendeine andere Einstellung ist noch falsch. Hat noch wer eine Idee ?
Oder gibt es noch eine Möglichkeit, Unterformulare ein- und auszublenden ?
Vielen Dank schon mal für Tips.
Gruß Daniel
seit einiger Zeit versuche ich vergeblich, ein Formular mit einem bestimmten Datensatz aufzurufen.
Ich habe eine Startseite mit einem Listenfeld, in dem ich einen Datensatz auswählen kann. Der Zugriff funktioniert, der Datensatz wird ausgewählt, Details aus dem Datensatz werden in einem Unterformular angezeigt, und ich kann von da aus auch den Datensatz bearbeiten. Es gibt ein zweites Formular (kein Unterformular), wo ich neue Datensätze erfassen kann. Auch das funktioniert. Nun will ich aber aus dem Hauptformular (der Button liegt auf dem Unterformular) dieses zweite Formular aufrufen, wo direkt der ausgewählte Datensatz zum bearbeiten aktiviert ist. Genau das funktioniert nicht.
Nirgendwo habe ich einen Hinweis gefunden, wie ich die Datensatz-ID im Aufruf mitgebe. Ich habe mir schon ein Textfeld angelegt, in dem mir die Datensatz-ID angezeigt wird. Da ich eine Filter-Tabelle habe, die ich schon für das Listenfeld nehme, könnte ich die ID auch dort reinschreiben, um den Wert dann vom anderen Formular auszulesen. Da habe ich keine Variante gefunden, den Wert darin zu speichern, ohne alles andere strubbelig zu machen.
Auch der Versuch, dieses Feld per Makro auszulesen schlug fehl, scheinbar bekomme ich per Makro nicht den richtigen Zugriff auf das Unterformular. Alle Lösungen, die Drawpage nutzen, produzieren eine Fehlermeldung. Genau wie eine oEvent-Lösung (ist beim Sub-Aufruf angegeben), die ich gefunden habe. Der Weg über ...FormDocument.getByName("Hauptformular").getByName("Unterformular") produziert eine Fehlermeldung beim 2. getByName, egal ob ich das wie hier kombiniere, oder in einen getrennten Befehl schreibe. Irgendwelche passenden .uno-Befehle habe ich bisher nicht gefunden (oder ich hab sie nicht verstanden )
Eine Dialog-Lösung habe ich ausgeschlossen, da es da scheinbar keinen direkten Tabellenzugriff zu geben scheint.
Die Makrosicherheit steht auf niedrig, alle Variablen sind per Dim deklariert. Irgendwie hab ich da wohl grad nen Brett vorm Kopf, oder irgendeine andere Einstellung ist noch falsch. Hat noch wer eine Idee ?
Oder gibt es noch eine Möglichkeit, Unterformulare ein- und auszublenden ?
Vielen Dank schon mal für Tips.
Gruß Daniel
Zuletzt geändert von Anekdoteles am Mo 10. Jan 2022, 21:54, insgesamt 1-mal geändert.
Libre Office 7.2.2.2
Windoof 10
Windoof 10
Re: Werte beim Formularaufruf übergeben.
Hallo Daniel,
aus der Beschreibung werde ich nicht schlau. Ein Screenshot des Formulars mit der Abbildung des Formularnavigators wäre hier vielleicht hilfreich. Oder gleich eine Dummydatei zum Nachvollziehen.
Gruß
Robert
aus der Beschreibung werde ich nicht schlau. Ein Screenshot des Formulars mit der Abbildung des Formularnavigators wäre hier vielleicht hilfreich. Oder gleich eine Dummydatei zum Nachvollziehen.
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
- Anekdoteles
- Beiträge: 7
- Registriert: Mo 10. Jan 2022, 12:27
Re: Werte beim Formularaufruf übergeben.
Hallo Robert,
ja, ich gebe zu, es liest sich ziemlich strubbelig. Ich hab einfach mal ein Dummy daraus gemacht, mit allen Varianten im Makroeditor, die ich bisher ausprobiert habe. Zumindest die, an die ich mich erinnere.
Ich habe also vor, aus dem ersten Formular "Startseite" heraus das zweite Formular aufzurufen, wo dann direkt der Datensatz aktiv ist, den ich im ersten Formular markiert habe.
Wenn es eine "einfache" Möglichkeit gibt, die Datensatz-ID beim Aufruf zu übergeben, wäre das sicher schon mal gut. Da ich aber sicher im weiteren Verlauf mit Makros werde arbeiten müssen, und da auch Felder auslesen muß, interessiert mich die Makrovariante ebenfalls brennend (wenn man da überhaupt drumherum kommt).
Als 2. bzw. 3. Frage wäre dann noch, ob und wie ich Unterformulare komplett aus- und einblenden kann. Das würde mir für vieles ausreichen.
Vielen Dank schon mal
Gruß Daniel
ja, ich gebe zu, es liest sich ziemlich strubbelig. Ich hab einfach mal ein Dummy daraus gemacht, mit allen Varianten im Makroeditor, die ich bisher ausprobiert habe. Zumindest die, an die ich mich erinnere.
Ich habe also vor, aus dem ersten Formular "Startseite" heraus das zweite Formular aufzurufen, wo dann direkt der Datensatz aktiv ist, den ich im ersten Formular markiert habe.
Wenn es eine "einfache" Möglichkeit gibt, die Datensatz-ID beim Aufruf zu übergeben, wäre das sicher schon mal gut. Da ich aber sicher im weiteren Verlauf mit Makros werde arbeiten müssen, und da auch Felder auslesen muß, interessiert mich die Makrovariante ebenfalls brennend (wenn man da überhaupt drumherum kommt).
Als 2. bzw. 3. Frage wäre dann noch, ob und wie ich Unterformulare komplett aus- und einblenden kann. Das würde mir für vieles ausreichen.
Vielen Dank schon mal
Gruß Daniel
- Dateianhänge
-
- Projekte Dummy.zip
- (21.68 KiB) 81-mal heruntergeladen
Libre Office 7.2.2.2
Windoof 10
Windoof 10
Re: Werte beim Formularaufruf übergeben.
Mach mal so:
Code: Alles auswählen
Sub NamenDetail_oeffnen(oEvent as object)
Formular_NamenDetail = ThisDatabaseDocument.FormDocuments.getByName( "NamenDetail").open
with Formular_NamenDetail.Drawpage.Forms.getbyname("NamenDetail")
.Filter = "NamID = " & oEvent.Source.Model.Parent.getByName("MarkID").getCurrentValue()
.reload
end with
End Sub
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: Werte beim Formularaufruf übergeben.
ad Ein/Ausblenden:
leg' im Startformular eine Checkbox (Markierfeld) an. Dem Ereignis "Status geändert" weist Du folgendes Makro zu:
leg' im Startformular eine Checkbox (Markierfeld) an. Dem Ereignis "Status geändert" weist Du folgendes Makro zu:
Code: Alles auswählen
Sub Tabellen_Steuerelement_1_auf_Startformular_Ein_Aus(oEvent)
if oEvent.Source.Model.State = 1 then
oEvent.Source.Model.Parent.getByName("Tabellen-Steuerelement 1").EnableVisible=True
else
oEvent.Source.Model.Parent.getByName("Tabellen-Steuerelement 1").EnableVisible=False
end if
end sub
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
- Anekdoteles
- Beiträge: 7
- Registriert: Mo 10. Jan 2022, 12:27
Re: [gelöst] Werte beim Formularaufruf übergeben.
Super. Funzt alles.
Das Ein- und Ausblenden geht zumindest bei einzelnen Feldern. Soll auch erstmal ausreichen.
Heißen Dank für die schnellen Antworten - werd bestimmt noch nerven
Gruß Daniel
Das Ein- und Ausblenden geht zumindest bei einzelnen Feldern. Soll auch erstmal ausreichen.
Heißen Dank für die schnellen Antworten - werd bestimmt noch nerven
Gruß Daniel
Libre Office 7.2.2.2
Windoof 10
Windoof 10
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️