Formular per Button öffnen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Arogarth
Beiträge: 5
Registriert: Mo, 06.11.2006 15:25
Kontaktdaten:

Formular per Button öffnen

Beitrag von Arogarth »

Guten Morgen,
Ich habe mir eine Datenbank mit Base erstellt.
Ich möchte aus einem Formular ein anderes Formular mittels Button öffnen.
Ich habe leider nur Lösungen gefunden, Formulare auserhalb eines Dokumentes zu öffnen. Ich möchte aber ein Formular öffnen lassen, welches in der Datenbank drinnen ist, unter Formulare.

Danke schonmal
MFG Arogarth
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

reicht es wenn ich ohne weitere Erläuterungen einen Code poste - Folgendes sollte laufen.

Code: Alles auswählen

Sub form_base_oeffnen()
formularname = "xTabelle1"
Dim arg(1) As New com.sun.star.beans.PropertyValue 
x = StarDesktop.CurrentComponent.getFormDocuments().getElementNames()
For i = LBOUND(x()) To UBOUND(x())
	if x(i) = formularname Then
		context = CreateUnoService("com.sun.star.sdb.DatabaseContext")
		db = context.getByName(StarDesktop.CurrentComponent.GetLocation)
		verb = db.getConnection("", "")
		arg(0).Name = "OpenMode"
		arg(0).Value = "open"
		arg(1).Name = "ActiveConnection"
		arg(1).Value = verb
		StarDesktop.CurrentComponent.getFormDocuments().loadComponentFromURL(x(i), "", 0, arg())
		Exit Sub
	End If
Next i
End Sub


Gruß
Stephan
longjohn
Beiträge: 8
Registriert: Mi, 14.03.2007 17:00

Beitrag von longjohn »

Hallo Stephan,

der Thread ist schon ein Monat her, aber meine Frage passt hier sehr gut rein.

Ich habe ein Formular erstellt, mit mehreren Schaltflächen "Puschbutton" und ich möchte nun als Aktion "Formular öffnen".

Diese option funktioniert nicht und leider hab ich auch keinen blasen Schimmer was dieser Quellcode von dir etwas weiter oben zu bedeuten hat.

Muss ich ein Makro schreiben oder diesen Code dort reinkopieren und die Formulardatei umbennen.
Aber selbst wenn ich das mache, wie rufe ich den Code ab bzw. führe ich die Aktion aus.

Vielleicht kann mir Stephan oder auch jemand anders helfen.

Kurz gesagt, wie öffne ich in einem Forumal ein Formular aus der gleichen Datenbank.
longjohn
Beiträge: 8
Registriert: Mi, 14.03.2007 17:00

Beitrag von longjohn »

Stephan hat geschrieben:reicht es wenn ich ohne weitere Erläuterungen einen Code poste - Folgendes sollte laufen.

Code: Alles auswählen

Sub form_base_oeffnen()
formularname = "xTabelle1"
Dim arg(1) As New com.sun.star.beans.PropertyValue 
x = StarDesktop.CurrentComponent.getFormDocuments().getElementNames()
For i = LBOUND(x()) To UBOUND(x())
	if x(i) = formularname Then
		context = CreateUnoService("com.sun.star.sdb.DatabaseContext")
		db = context.getByName(StarDesktop.CurrentComponent.GetLocation)
		verb = db.getConnection("", "")
		arg(0).Name = "OpenMode"
		arg(0).Value = "open"
		arg(1).Name = "ActiveConnection"
		arg(1).Value = verb
		StarDesktop.CurrentComponent.getFormDocuments().loadComponentFromURL(x(i), "", 0, arg())
		Exit Sub
	End If
Next i
End Sub
Gruß
Stephan
Hi Stephan,

ich hab mich durch die Hilfe und diverse Seiten geackert und bin schon weiter.
Makro geschrieben wie von dir gecoded, eingefügt, als Aktion ausgeführt!

Kommt aber dann eine Fehlermeldung:
BASIC-Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden


er zeigt im Marko einen roten Pfeil bei dieser Zeile an:
x = StarDesktop.CurrentComponent.getFormDocuments().getElementNames()

Hab den Code von dir genommen also makro eingefügt in Base und gespeichter.
Lediglich diese Zeile auf formularname = "fm_abrechnung" geändert.

Weisst du einen rat?
longjohn
Beiträge: 8
Registriert: Mi, 14.03.2007 17:00

Beitrag von longjohn »

arbeite mit openoffice 2.0
Antworten