Öffnen von Formularen über Schaltflächen
Moderator: Moderatoren
Öffnen von Formularen über Schaltflächen
Ich versuche schon seit einiger Zeit über eine Schaltfläche in einem Formular ein anderes Formular zu öffnen. Ich kriege es leider nicht mal ansatzweise hin. Wäre super lieb, wenn mir jemand weiterhelfen könnte!
Vielen Dank!
Vielen Dank!
Hey Orca,
hmm, wieviel Ahnung hast du denn vom Programmierern? Wie hast du dein erstes Formular geöffnet? Wie arbeitest du überhaupt?
Base hat eine einfache Struktur, die in den meisten Fällen ausreichend ist. Willst du mehr, geht das alles über die API - also direkte Programmierung zum Beispiel per Basic.
Also, ich nehme nicht an, dass du hier von jemanden eine fertige Lösung erwartest - andererseits lieferst du viel zu wenig Informationen, wie weit du schon bist.
Kurz: Per Mausklick und mit Drag&Drop ist das nicht zu realisieren. Über Programmierung jederzeit - bedarf aber entsprechender Vorkenntnisse und Vorarbeiten.
Viele Grüße
Thomas
hmm, wieviel Ahnung hast du denn vom Programmierern? Wie hast du dein erstes Formular geöffnet? Wie arbeitest du überhaupt?
Base hat eine einfache Struktur, die in den meisten Fällen ausreichend ist. Willst du mehr, geht das alles über die API - also direkte Programmierung zum Beispiel per Basic.
Also, ich nehme nicht an, dass du hier von jemanden eine fertige Lösung erwartest - andererseits lieferst du viel zu wenig Informationen, wie weit du schon bist.
Kurz: Per Mausklick und mit Drag&Drop ist das nicht zu realisieren. Über Programmierung jederzeit - bedarf aber entsprechender Vorkenntnisse und Vorarbeiten.
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hi Thomas!
Ich habe ne Prozedur, um von Form1 auf Form2 zu kommen:
sub onClickForm2Button( oev as variant )
with OpenForm( getFormsTC, getConnectionTC, "Form2" )
.CurrentController.Frame.Title = "My FORM 2"
end with
end sub
Da passiert bloß leider gar nichts;( Richtige Ahnung habe ich leider nicht!
Wäre trotzdem nett, wenn Du mir helfen könntest!!!
Ich habe ne Prozedur, um von Form1 auf Form2 zu kommen:
sub onClickForm2Button( oev as variant )
with OpenForm( getFormsTC, getConnectionTC, "Form2" )
.CurrentController.Frame.Title = "My FORM 2"
end with
end sub
Da passiert bloß leider gar nichts;( Richtige Ahnung habe ich leider nicht!
Wäre trotzdem nett, wenn Du mir helfen könntest!!!
Hey Orca,
wo hast du die denn her? Kann ich wenig mit anfangen., ohne mehr Infos zu haben. Wer oder was ist "oev"? Wo erzeugst du diese Varaible, wozu brauchst du die? Für die Sub jedenfalls nicht, wozu dann übergeben?
Erscheint mir generell keine OOo Funktion zu sein, bzw wo ist die Funktion OpenForm() ? Was gibt die zurück? Ansonsten setzt lie ledigllich den Titel des Frames (also des sichtbaren Fensters) - wechselt aber nicht das Formular.
Also, da kann ich dir aktuell wenig helfen.
Gruss
Thomas
wo hast du die denn her? Kann ich wenig mit anfangen., ohne mehr Infos zu haben. Wer oder was ist "oev"? Wo erzeugst du diese Varaible, wozu brauchst du die? Für die Sub jedenfalls nicht, wozu dann übergeben?
Erscheint mir generell keine OOo Funktion zu sein, bzw wo ist die Funktion OpenForm() ? Was gibt die zurück? Ansonsten setzt lie ledigllich den Titel des Frames (also des sichtbaren Fensters) - wechselt aber nicht das Formular.
Also, da kann ich dir aktuell wenig helfen.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hi Thomas!
Die Funktionen hat mir jemand aus Amiland gegeben. Zur Info, was ich eigentlich will:
Ich möchte mir ein Kontaktverwaltungsprogramm erstellen. Dazu möchte ich ein Hauptmenü haben, auf dem ein Button sichtbar ist. Wenn ich diesen Button drücke, soll sich die Eingabemaske (Formular "Kontaktperson") öffnen. Dort kann ich dann alle Kontaktdaten inkl. Historie, Wiedervorlage etc. eintragen.
Ein zweiter Button im Hauptmenü soll mich zu den Abfragen bringen. Hier will ich mir dann zum Beispiel alle Kontakte anzeigen lassen, die ich wieder in der KW 21 ansprechen möchte etc.
Vielleicht gibt es ja auch einen anderen Weg, die beiden Formulare zu verlinken?. Ich hab in den Foren leider noch nicht das richtige gefunden;(
Die Funktionen hat mir jemand aus Amiland gegeben. Zur Info, was ich eigentlich will:
Ich möchte mir ein Kontaktverwaltungsprogramm erstellen. Dazu möchte ich ein Hauptmenü haben, auf dem ein Button sichtbar ist. Wenn ich diesen Button drücke, soll sich die Eingabemaske (Formular "Kontaktperson") öffnen. Dort kann ich dann alle Kontaktdaten inkl. Historie, Wiedervorlage etc. eintragen.
Ein zweiter Button im Hauptmenü soll mich zu den Abfragen bringen. Hier will ich mir dann zum Beispiel alle Kontakte anzeigen lassen, die ich wieder in der KW 21 ansprechen möchte etc.
Vielleicht gibt es ja auch einen anderen Weg, die beiden Formulare zu verlinken?. Ich hab in den Foren leider noch nicht das richtige gefunden;(
Ich hab's so ohne Programmierung hinbekommen:
1) Formulare erstellen
2) Formulare speichern als Kopie
3) "Externe" Formulare öffnen und an die Datenbank binden im Menü "Bearbeiten"-> "Datenbank austauschen" (Datenbank muß dafür angemeldet sein).
4) Datenquelle in den Formulareigenschaften eintragen (diese Verbindung geht beim Speichern als externe odt-Datei leider verloren).
5) Schaltflächen erstellen und unter "Aktion" für die Schaltfläche "Dokument/Website öffnen" wählen. Pfad in dem Eingabefeld "URL" eingeben, entweder absolut oder relativ. Wenn alle Formulare in einem Ordner sind, sollte der Dateiname reichen.
Das war's.
OO zeigt übrigens noch ein merkwürdiges Verhalten dabei: wenn man von einem Datenbank-internen Formular auf ein extern gespeichertes zugreift, läßt sich das externe nicht mehr schließen und das interne wird nicht mehr angezeigt.
Werden alle Formular extern gespeichert gibt es kein Problem.
Viel Erfolg!
1) Formulare erstellen
2) Formulare speichern als Kopie
3) "Externe" Formulare öffnen und an die Datenbank binden im Menü "Bearbeiten"-> "Datenbank austauschen" (Datenbank muß dafür angemeldet sein).
4) Datenquelle in den Formulareigenschaften eintragen (diese Verbindung geht beim Speichern als externe odt-Datei leider verloren).
5) Schaltflächen erstellen und unter "Aktion" für die Schaltfläche "Dokument/Website öffnen" wählen. Pfad in dem Eingabefeld "URL" eingeben, entweder absolut oder relativ. Wenn alle Formulare in einem Ordner sind, sollte der Dateiname reichen.
Das war's.
OO zeigt übrigens noch ein merkwürdiges Verhalten dabei: wenn man von einem Datenbank-internen Formular auf ein extern gespeichertes zugreift, läßt sich das externe nicht mehr schließen und das interne wird nicht mehr angezeigt.
Werden alle Formular extern gespeichert gibt es kein Problem.
Viel Erfolg!
-
- Beiträge: 5
- Registriert: Mi, 04.01.2006 21:06
Hallo,
kleine Ergänzung im Schritt 4):
Gruss
Thomas
kleine Ergänzung im Schritt 4):
Es darf zusätzlich nicht vergessen werden, bei Formular-Eigenschaften, Register Daten, im Feld "Inhalt" die gewünschte Tabelle bzw. Abfrage auszuwählen.venkman hat geschrieben:Ich hab's so ohne Programmierung hinbekommen:
4) Datenquelle in den Formulareigenschaften eintragen (diese Verbindung geht beim Speichern als externe odt-Datei leider verloren).
Gruss
Thomas
-
- ***
- Beiträge: 65
- Registriert: Mo, 14.01.2008 19:31
Re: Öffnen von Formularen über Schaltflächen
Habs schon gefunden, so läufts richtig mit schreibzugriff:
Code: Alles auswählen
function OpenForm( formContainer as variant, _
oConnection as variant, _
sFormName as string, _
optional strMode as string) as variant
Dim aProp(1) As New com.sun.star.beans.PropertyValue
dim openMode as string
if ismissing( strMode ) then
openMode = "open"
else
openMode = strMode
endif
aProp(0).Name = "ActiveConnection"
aProp(0).Value = oConnection
aProp(1).Name = "OpenMode"
aProp(1).Value = strMode
OpenForm = formContainer.loadComponentFromURL(sFormName,"_blank",0,aProp())
end function
sub onClick( oEvent as variant )
OpenForm( OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, _
OEvent.Source.Model.Parent.ActiveConnection, _
"auftragserfassung")
end sub