Hallo,
könnt ihr mir helfen:
Ich möchte wissen ob ein Formular geladen ist und wenn aktiv setzen.
Habe folgendes gefunden:
Sub Documents_alle( )
Dim oDesktop As Object, oDocs As Object,
Dim oDoc As Object, oComponents As Object
Dim i as Integer
i = 0
oComponents = StarDesktop.getComponents()
oDocs = oComponents.createEnumeration()
Do While oDocs.hasMoreElements()
oDoc = oDocs.nextElement()
Msgbox namen vom Fenster ausgeben und setzen z. bsp. rechnungen??
oDoc.CurrentController.Frame.getContainerWindow().setFocus
i = i + 1 'Counter
Loop
'MsgBox i + "Components are currently open"
End Sub
ich danke euch für eure Hilfe
mfg
Georg
Fenster Name und Form ermitteln und aktiv schalten
Moderator: Moderatoren
-
- Beiträge: 7
- Registriert: Sa, 27.12.2008 19:18
-
- Beiträge: 7
- Registriert: Sa, 27.12.2008 19:18
Re: Fenster Name und Form ermitteln und aktiv schalten
Hallo,
Danke euch zuerst mal für eure Hilfe.
Aber ich kann die Funktion noch nicht aufrufen.
Was mache ich noch falsch:
Es soll das fenster Haupteingabekontakte in Base aufgerufen werden
formhaupteingabe(Fensterwechseln()) geht nicht.
Bitte helft mir nochmal.
Dass ist wirklich ein klasse Forum.
mfg
Georg
Danke euch zuerst mal für eure Hilfe.
Aber ich kann die Funktion noch nicht aufrufen.
Was mache ich noch falsch:
Es soll das fenster Haupteingabekontakte in Base aufgerufen werden
formhaupteingabe(Fensterwechseln()) geht nicht.
Bitte helft mir nochmal.
Dass ist wirklich ein klasse Forum.
mfg
Georg
Re: Fenster Name und Form ermitteln und aktiv schalten
Hallo Georg,
ein Datenbankformular ist mit einem Titel versehen, der sich wie folgt zusammensetzt:
So, nun kannst Du mit Hilfe der anderen Codeteile, die Du bereits hast das Formular aus den geöffneten Dokumenten heraussuchen. Bei nicht vorhanden muss es eben neu geöffnet werden...
Dazu kannst Du den folgenden Code benutzen:
Gruss
sarotti
ein Datenbankformular ist mit einem Titel versehen, der sich wie folgt zusammensetzt:
Somit mußt Du, um den Namen eines geöffneten Formulars einer Datenbank auszulesen erst einmal den Namen "isolieren":[DBName].odt : [Formulartitel] (schreibgeschützt)
Code: Alles auswählen
Sub Titel_aus_DB_Form
DIM dbName as String : dbName="TEST_DB"
DIM sFormName as String : sFormName="Formular1"
DIM sFormName, sDocTitel as String
DIM iDbName, iFormName as integer
DIM
sdocTitel=ThisComponent.Title
iDbName=len(dbName)
iFormName=len(sFormName)
sFormName=mid(sdocTitel,iDbName+9,iFormName)
msgBox sFormName
End Sub
Dazu kannst Du den folgenden Code benutzen:
Code: Alles auswählen
SUB OPEN_Formular_aus_Datenbank
DIM str_dbname AS STRING: str_dbname = "TEST_DB" 'Name der Datenbank
DIM str_frmname AS STRING: str_frmname = "Formular1" 'Name des Formulars
REM ***Datenbankkontext erzeugen
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
REM *** Prüfung: Ist die erwartete Datenbank angemeldet?
IF DatabaseContext.hasByName(str_dbname)=false THEN
MSGBOX "Datenbank nicht gefunden: " & str_dbname: EXIT SUB
END IF
Datenquelle = DatabaseContext.getByName(str_dbname)
REM *** Übergabe der Parameter zum Öffnen
DIM args(2) AS NEW com.sun.star.beans.PropertyValue
args(1).name = "OpenMode"
args(1).value = "open"
args(0).name = "ActiveConnection"
args(0).value = Datenquelle.getConnection("","")
args(2).Name = "MacroExecutionMode"
args(2).Value = 4 'entspricht "ALWAYS_EXECUTE"
DIM obj_Forms AS OBJECT: obj_Forms = Datenquelle.DataBaseDocument.getFormDocuments
REM *** Grösse (vom Bildschirmrand aus gesehen) und Position des zu öffnenden Formulars definieren
posx=350
posy=100
sizeX=600
sizeY=800
REM *** Öffnen des Formulars
oForm=obj_Forms.loadComponentFromURL(str_frmname, "_self", 0, args())
With oForm.getCurrentController().getFrame().getContainerWindow()
.setPosSize(posx, posy, sizeX, sizeY, com.sun.star.awt.PosSize.POSSIZE)
End With
END SUB
sarotti
-
- Beiträge: 7
- Registriert: Sa, 27.12.2008 19:18
Re: Fenster Name und Form ermitteln und aktiv schalten
Hallo an alle,
Danke euch sehr für die Hilfe.
Jetzt hab ichs raus mit dem Fenster öffnen dank eurer Hilfe.
mfg
Georg
Danke euch sehr für die Hilfe.
Jetzt hab ichs raus mit dem Fenster öffnen dank eurer Hilfe.
mfg
Georg