🙏 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. 🤗
Makro Formular aufrufen
Makro Formular aufrufen
Hallo,
ich habe mehrere Formulare.
Diese Formulare will ich über ein Ahuptformular aufrufen.
Also im Hauptformular gibt es dann mehrere Schaltfläche. Wenn man dann da drauf drückt, dann öffte sich z. B. das Formular "Eingabe" oder auf einer anderen Schaltfläche das Formular "Detail" usw.
Ich habe jetzt schon eine Schaltfläche erstellt müsste jetzt nur noch das Makro hinzufügen.
Wo kann man so ein Makro herunter laden.
Bitte um Antwort
Vielen Dank für eure Bemühungen
Fabi
ich habe mehrere Formulare.
Diese Formulare will ich über ein Ahuptformular aufrufen.
Also im Hauptformular gibt es dann mehrere Schaltfläche. Wenn man dann da drauf drückt, dann öffte sich z. B. das Formular "Eingabe" oder auf einer anderen Schaltfläche das Formular "Detail" usw.
Ich habe jetzt schon eine Schaltfläche erstellt müsste jetzt nur noch das Makro hinzufügen.
Wo kann man so ein Makro herunter laden.
Bitte um Antwort
Vielen Dank für eure Bemühungen
Fabi
Re: Makro Formular aufrufen
Ein für alle mal ... damit man drauf verweisen kann 
GENERELL:
... und etwas mehr handy - über die Eigenmschaft "Zusatzinformation" des Buttons bzw. der Schaltfläche die das Formular öffnen soll:
Wobei der unter "Zusatzinformation" des Buttons/Schaltfläche etc. exakt der Name des zu öffnenden Formulars eingetragen sein muss!
Edit:(.Name auf .Tag geändert - ist smarter)

GENERELL:
Code: Alles auswählen
Sub FormOeffnen
on error goto EH
If isNull(ThisDatabaseDocument.CurrentController.ActiveConnection) Then
ThisDatabaseDocument.CurrentController.Connect
End If
If ThisDatabaseDocument.FormDocuments.hasByName("Mein Formular") then
ThisDatabaseDocument.FormDocuments.getByName("Mein Formular").open
Else
MsgBox "Das Formular: '" & "Mein Formular" & "' wurde nicht gefunden!"
End If
Exit Sub:EH: call EH
End Sub
Sub EH
MsgBox "Fehler " & ERR & ": " & ERROR$ + CHR(13) + "In line : " + ERL + CHR(13) + NOW,16,"Fehler aufgetreten"
End Sub
... und etwas mehr handy - über die Eigenmschaft "Zusatzinformation" des Buttons bzw. der Schaltfläche die das Formular öffnen soll:
Code: Alles auswählen
Sub FormOeffnen(oEvent)
on error goto EH
If isNull(ThisDatabaseDocument.CurrentController.ActiveConnection) Then
ThisDatabaseDocument.CurrentController.Connect
End If
If ThisDatabaseDocument.FormDocuments.hasByName(oEvent.Source.Model.Tag) then
ThisDatabaseDocument.FormDocuments.getByName(oEvent.Source.Model.Tag).open
Else
MsgBox "Das Formular: '" & oEvent.Source.Model.Tag & "' wurde nicht gefunden!"
End If
Exit Sub:EH: call EH
End Sub
Sub EH
MsgBox "Fehler " & ERR & ": " & ERROR$ + CHR(13) + "In line : " + ERL + CHR(13) + NOW,16,"Fehler aufgetreten"
End Sub
Edit:(.Name auf .Tag geändert - ist smarter)
Zuletzt geändert von gogo am So 20. Mai 2012, 20:33, insgesamt 1-mal geändert.
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: Makro Formular aufrufen
Hallo,
vielen Dank erstmal für deine Antwort.
ICh weis nicht so ganz was ich abändern muss.
Hat bei mir irgenwie nich ganz funkt. aber vielleicht hab ich auch etwas falsch gemacht
So also ich habe ein Formular das heißt: "Formular 1"
Die Schaltfläche heißt: "Eingabe"
Das Formular was geöffnet werden soll heißt: "Anlagegueter"
Was muss ich da ändern.
Könntest du mir des machen ????
Ich wär dir echt sehr, sehr dankbar.
Aber dann hab ich eine Vorlage und weis wies geht und was man ändern muss.
Wär dir wirklich dankbar.
Vieeeeelen Dank für deine Bemühungen
Fabi
vielen Dank erstmal für deine Antwort.
ICh weis nicht so ganz was ich abändern muss.
Hat bei mir irgenwie nich ganz funkt. aber vielleicht hab ich auch etwas falsch gemacht
Code: Alles auswählen
Sub FormOeffnen
on error goto EH
If isNull(ThisDatabaseDocument.CurrentController.ActiveConnection) Then
ThisDatabaseDocument.CurrentController.Connect
End If
If ThisDatabaseDocument.FormDocuments.hasByName("Mein Formular") then
ThisDatabaseDocument.FormDocuments.getByName("Mein Formular").open
Else
MsgBox "Das Formular: '" & "Mein Formular" & "' wurde nicht gefunden!"
End If
Exit Sub:EH: call EH
End Sub
Sub EH
MsgBox "Fehler " & ERR & ": " & ERROR$ + CHR(13) + "In line : " + ERL + CHR(13) + NOW,16,"Fehler aufgetreten"
End Sub
Die Schaltfläche heißt: "Eingabe"
Das Formular was geöffnet werden soll heißt: "Anlagegueter"
Was muss ich da ändern.
Könntest du mir des machen ????
Ich wär dir echt sehr, sehr dankbar.
Aber dann hab ich eine Vorlage und weis wies geht und was man ändern muss.
Wär dir wirklich dankbar.
Vieeeeelen Dank für deine Bemühungen
Fabi
Re: Makro Formular aufrufen
Ersetze einfach "Mein Formular" gegen "Anlagegueter"
Bei den Eigenschaften der Schaltfläche gibt's den Reiter "Ereignisse" - dort auf die 3 Punkte in der Zeile "Aktion ausführen" klicken, und mit "Zuweisen" ... "Makro" das Makro "FormOeffnen" zuweisen - voilà
Bei den Eigenschaften der Schaltfläche gibt's den Reiter "Ereignisse" - dort auf die 3 Punkte in der Zeile "Aktion ausführen" klicken, und mit "Zuweisen" ... "Makro" das Makro "FormOeffnen" zuweisen - voilà
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: Makro Formular aufrufen
Hallo,
vielen Dank für deine Antwort.
Hab des so gemacht.
Wenn ich jetzt auf den Button drück, kommt ein Fehler:
Fehler 91: Objektvariable nicht belegt.
In line: 4
19.05.2012 17:50:54
Was hab ich falsch gemacht hab sonst am Code nichts verändert.
Vielen Dank für deine Bemühungen.
Fabi
vielen Dank für deine Antwort.
Hab des so gemacht.
Wenn ich jetzt auf den Button drück, kommt ein Fehler:
Fehler 91: Objektvariable nicht belegt.
In line: 4
19.05.2012 17:50:54
Was hab ich falsch gemacht hab sonst am Code nichts verändert.
Vielen Dank für deine Bemühungen.
Fabi
Re: Makro Formular aufrufen
Hallo Fabi,
schau auch einmal hier:
http://de.openoffice.info/viewtopic.php?f=8&t=52978
... ist nämlich etwas lästig, wenn etwas sowohl in dem einen als auch dem anderen Forum erklärt werden muss.
Gruß
Robert
schau auch einmal hier:
http://de.openoffice.info/viewtopic.php?f=8&t=52978
... ist nämlich etwas lästig, wenn etwas sowohl in dem einen als auch dem anderen Forum erklärt werden muss.
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: Makro Formular aufrufen
Hallo,
vielen Dank für deinen Link der Link hat mich sehr weitergebracht.
ICh hab den code jetzt auf meine beiden Formulare umgeschrieben.
Das Hauptformular: "Formular1"
Das Formular was durch die Schaltfläche geöffnet werden soll: "Anlagegueter"
Das Hauptformular soll dann geschlossen werden wenn man auf den Button drückt.
Das hier ist der Code:
Ist der Code so richtig???
Wenn ich ihn ausführe kommt eine Fehlermeldung:
Unzulässiger Wert des Datentyp.
Index auserhalb des definierten Bereichs.
Er makiert mir dann die Zeile 13:
was mach ich falsch???
Bitte um einen Tipp.
Vielen Dank für eure Bemühungen !!!!!!!!
Gruß
Fabi
vielen Dank für deinen Link der Link hat mich sehr weitergebracht.
ICh hab den code jetzt auf meine beiden Formulare umgeschrieben.
Das Hauptformular: "Formular1"
Das Formular was durch die Schaltfläche geöffnet werden soll: "Anlagegueter"
Das Hauptformular soll dann geschlossen werden wenn man auf den Button drückt.
Das hier ist der Code:
Code: Alles auswählen
Global gHauptformClosed as Boolean
Global gClosedForm as String
SUB Zu_Formular_von_Formular(oEvent AS OBJECT)
DIM stTag AS String
' GlobalScope.BasicLibraries.LoadLibrary("XrayTool")
gHauptformClosed = False
stTag = oEvent.Source.Model.Tag
aForm() = Split(stTag, "Anlagegueter,Formular1")
gClosedForm = ( Trim(aForm(1)) )
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(0)) ).open
ThisDatabaseDocument.FormDocuments.getByName( Trim(aForm(1)) ).close
gHauptformClosed = True
END SUB
SUB Hauptformular_oeffnen
' GlobalScope.BasicLibraries.LoadLibrary("XrayTool")
If gClosedForm = "Formular1" Then
gClosedForm = ""
Exit Sub
End If
If gHauptformClosed = True Then
ThisDatabaseDocument.FormDocuments.getByName( "Formular1" ).open
gHauptformClosed = False
End If
END SUB
Wenn ich ihn ausführe kommt eine Fehlermeldung:
Unzulässiger Wert des Datentyp.
Index auserhalb des definierten Bereichs.
Er makiert mir dann die Zeile 13:
Code: Alles auswählen
gClosedForm = ( Trim(aForm(1)) )
was mach ich falsch???
Bitte um einen Tipp.
Vielen Dank für eure Bemühungen !!!!!!!!
Gruß
Fabi
Re: Makro Formular aufrufen
Hallo Fabi,
irgendwie scheinst Du mit dem Code richtig ins Schwimmen zu geraten.
Mit
ThisDatabaseDocument.FormDocuments.getByName( "Formularname des zu öffnenden Formulars").open
öffnest Du das neue Formular
Mit
ThisDatabaseDocument.FormDocuments.getByName("Formularname des zu schließenden Formulars").close
schließt Du das zu schließende Formular.
Die einfachste Variante wäre jetzt:
Mehr brauchst Du nicht, wenn Du von einem Formular zum anderen wechseln willst und dabei das Ausgangsformular schließen möchtest.
Die erste Verfeinerung ist, dass Du vielleicht mit mehr Formularen arbeitest. Dann wäre es natürlich blöd, den Code jedes Mal neu schreiben zu müssen.
Das geht dann so:
Jetzt kannst Du das Makro natürlich erweitern. Geschickt ist bei vielen Buttons, die Inhalte über die Buttons selbst weiter zu geben. Hier bietet sich das Feld "Zusatzinformationen" an. Das ist dann die Geschichte mit oEvent.Source.Model.Tag.
Dieses Makro ist auch in dem Kapitel "Makros" des Base-Handbuchs beschrieben, das Du unter
http://de.libreoffice.org/hilfe-kontakt/handbuecher/
herunterladen oder direkt per *.pdf lesen kannst.
Wenn Du die Beispieldatenbanken dazu suchst, so sind die bisher nicht im Wiki veröffentlicht. Die stehen bisher auf ODFAuthors oder hier:
http://robert.familiegrosskopf.de
unter dem Menüpunkt "Einführung Base" bzw. direkt zum Download als
http://robert.familiegrosskopf.de/downl ... se_V35.zip
Gruß
Robert
irgendwie scheinst Du mit dem Code richtig ins Schwimmen zu geraten.
Mit
ThisDatabaseDocument.FormDocuments.getByName( "Formularname des zu öffnenden Formulars").open
öffnest Du das neue Formular
Mit
ThisDatabaseDocument.FormDocuments.getByName("Formularname des zu schließenden Formulars").close
schließt Du das zu schließende Formular.
Die einfachste Variante wäre jetzt:
Code: Alles auswählen
SUB Formularwechsel_Form1_Form2
ThisDatabaseDocument.FormDocuments.getByName("Form1").open
ThisDatabaseDocument.FormDocuments.getByName("Form2").close
END SUB
Die erste Verfeinerung ist, dass Du vielleicht mit mehr Formularen arbeitest. Dann wäre es natürlich blöd, den Code jedes Mal neu schreiben zu müssen.
Das geht dann so:
Code: Alles auswählen
SUB Formularwechsel(FormOpen AS STRING, FormClose AS STRING
ThisDatabaseDocument.FormDocuments.getByName(FormOpen).open
ThisDatabaseDocument.FormDocuments.getByName(FormClose).close
END SUB
SUB Wechsel_Form1_Form2
Formularwechsel("Form1", "Form2")
END SUB
Dieses Makro ist auch in dem Kapitel "Makros" des Base-Handbuchs beschrieben, das Du unter
http://de.libreoffice.org/hilfe-kontakt/handbuecher/
herunterladen oder direkt per *.pdf lesen kannst.
Wenn Du die Beispieldatenbanken dazu suchst, so sind die bisher nicht im Wiki veröffentlicht. Die stehen bisher auf ODFAuthors oder hier:
http://robert.familiegrosskopf.de
unter dem Menüpunkt "Einführung Base" bzw. direkt zum Download als
http://robert.familiegrosskopf.de/downl ... se_V35.zip
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: Makro Formular aufrufen
Hallo,
vielen Dank, dass du so viel Geduld hast.
Ich kapier einfach nich was ich jetzt schon wieder falsch gemacht hab das ist mein CODE:
Was ist daran falsch ?????
Ich hoff des is meine letzte Frage tut mir leid dass ich dih immer Fragen muss.
Weis das echt sehr zu schetzen!!!!
Bitte um hoffentlich die letzte Antwort !!!
Gruß
Fabi
vielen Dank, dass du so viel Geduld hast.
Ich kapier einfach nich was ich jetzt schon wieder falsch gemacht hab das ist mein CODE:
Code: Alles auswählen
SUB Formularwechsel_Form1_Form2
ThisDatabaseDocument.FormDocuments.getByName("Anlagegueter").open
ThisDatabaseDocument.FormDocuments.getByName("Formular1").close
END SUB
Sub Macro1
End Sub
Ich hoff des is meine letzte Frage tut mir leid dass ich dih immer Fragen muss.
Weis das echt sehr zu schetzen!!!!
Bitte um hoffentlich die letzte Antwort !!!
Gruß
Fabi
Re: Makro Formular aufrufen
Hallo Fabi,
ein Hinweis auf die Fehlermeldung wäre interessant.
Du hast also in Deinem Base-Dokument ein Formular, das den Namen "Formular1" hat. Aus diesem heraus rufst Du das Makro auf.
Dann hast Du ein zweites Formular in Deinem Base-Dokument, das den Namen "Anlagegueter" hat. Dieses Formular sollte geöffnet werden.
... oder hast Du etwas externe Formulare? ... oder etwas Formulare in dem Ordner gestaffelt, so dass Du im Formularordner Unterordner gebildet hast?
Gruß
Robert
ein Hinweis auf die Fehlermeldung wäre interessant.
Du hast also in Deinem Base-Dokument ein Formular, das den Namen "Formular1" hat. Aus diesem heraus rufst Du das Makro auf.
Dann hast Du ein zweites Formular in Deinem Base-Dokument, das den Namen "Anlagegueter" hat. Dieses Formular sollte geöffnet werden.
... oder hast Du etwas externe Formulare? ... oder etwas Formulare in dem Ordner gestaffelt, so dass Du im Formularordner Unterordner gebildet hast?
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
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.