Zugriff auf anderes Formular von einem Formular aus

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Hehue
*
Beiträge: 10
Registriert: Mi, 03.12.2008 19:14

Re: Zugriff auf anderes Formular von einem Formular aus

Beitrag von Hehue »

Hier sind die Programmteile um das Problem zu lösen. Dahinter steht eine Datenbank die zunächst nur zwei Formulare enthält, es geht nur darum zu zeigen wie man das Problem lösen kann.

Ablauf:
Nach starten von OO Macro Main starten, Formular 1 wird geöffnet
Anklicken der Schaltfläche öffnet Formular 2
Eingabefeld in Formular 2 füllen
Anklicken der Schaltfläche in Formular 1 zeigt den Inhalt aus Formular 2 in MsgBox

Viel Vergnügen


REM ***** BASIC *****
Option Explicit
Global oDBDok as Object ' Datenbankobjekt
Global oDBVer as Object ' Datenbankverbindung
Global oDBCon as Object ' Forms-Container der Datenbank

Global oForm1 As Object
Global oForm2 As Object

Sub Main

Dim sDBUrl as String ' URL der Datenbank
Dim oBaseContext

sDBUrl = ConvertToUrl("G:/OOP221/Dokumente/Formtest/Formtest.odb")
oBaseContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oDBDok = oBaseContext.getByName(sDBUrl)
oDBVer = oDBDok.getConnection("", "")
oDBCon = oDBDok.DataBaseDocument.getFormDocuments()

oForm1 = OeffneForm("Formular1")

End Sub


Sub FormOeffnen(oEvent as variant)

Dim sButton as String

sButton = oEvent.Source.Model.Name ' sButton ist der Name der auslösenden Schaltfläche
select case sButton
case "F001B01"
oForm2 = OeffneForm("Formular2")
case else
msgbox "Der Schaltfläche ist kein Formular zugeordnet"
end Select

End Sub


Function OeffneForm(sFormName as string) as variant

Dim args(1) As New com.sun.star.beans.PropertyValue
Dim oForm as Object

args(0).Name = "ActiveConnection"
args(0).Value = oDBVer
args(1).Name = "OpenMode"
args(1).Value = "open"
oForm = oDBCon.loadComponentFromURL(sFormName,"_blank",0,args())
OeffneForm() = oForm

End Function


Sub ZeigeTextFeld

Dim ctl As Object

ctl = oForm2.DrawPage.Forms.GetByIndex(0).GetByName("TextBox")
msgbox ctl.text

End Sub
Dateianhänge
Formtest.odb
Formtest.odb enthält nur zwei Formulare!
(12.6 KiB) 130-mal heruntergeladen
Perrork
*
Beiträge: 18
Registriert: So, 07.06.2009 20:54

Re: Zugriff auf anderes Formular von einem Formular aus

Beitrag von Perrork »

Hallo zusammen,

Beschreibung um "Formtest.odb" selbst zu testen
(Damit ich beim nächten mal nicht so hirrrrnen muß)

Nach dem Download
Datei öffnen
Extas -- Macros --- Macros verwalten --- OOo Basic --- Formtest.odb --- Neu
Code von oben einfügen.
sDBUrl = ConvertToUrl( ......) an den eigenen Path anpassen
Formular --- Formular1 --- Bearbeiten
Rechte Maustaste bei Schaltfläche "Formular 2 öffnen" --- Kontrollfeld --- Ereignisse --- Maustaste losgelassen --- ( über Schaltfläche "...") anpassen
das selbe bei "Eingabefeld aus Formular 2 anzeigen"

Das weiß zwar jeder aber trozdem "speichern".
( Ich selbst hab eine Std. weitere Tests gemacht und wurde dann auch mal wieder an den Anfang zurückgeschmissen.)

Gruß PerRork
Gesperrt