Fremdes Formular öffnen mit Filter
Verfasst: Di, 13.01.2009 18:45
Hallo an alle,
ich habe beim öffnen mit Filter noch ein problem
wer kann mir helfen?
Ich kann diesen so einmal aufrufen aber kein zweitesmal dann bleibt er bei der oForm1 übergabe stehen.
Wo ligegt der Fheler
Bitte helft mir mal
SUB OPEN_Formular(formname)
Dim DatabaseContext as Object
Dim Datenquelle as Object
Dim oDBDok as Object
Dim posx as Integer
Dim posy as Integer
Dim sizeX as Integer
Dim sizeY as Integer
DIM str_dbname AS STRING: str_dbname = "rechnungen" 'Name der Datenbank
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)
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=posxx
posy=posyy
sizeX=sizeXX
sizeY=sizeYY
REM *** Öffnen des Formulars
oForm=obj_Forms.loadComponentFromURL(formname, "_self", 0, args())
With oForm.getCurrentController().getFrame().getContainerWindow()
.setPosSize(posx, posy, sizeX, sizeY, com.sun.star.awt.PosSize.POSSIZE)
End With
oDoc=ThisComponent
If oDoc.supportsService("com.sun.star.text.TextDocument" ) then
ThisComponent.CurrentController.ViewSettings.ZoomValue=100
end if
oDoc.CurrentController.Frame.getContainerWindow().setFocus
oDoc=ThisComponent
'hier geht es nach dem 2 aufruf nicht mehr
oForm1 = ThisComponent.Drawpage.forms.getByname("leistungform")
oForm1.Filter="rechnr=66"
Danke euch für eure Hilfe
mfg
Georg
END SUB
ich habe beim öffnen mit Filter noch ein problem
wer kann mir helfen?
Ich kann diesen so einmal aufrufen aber kein zweitesmal dann bleibt er bei der oForm1 übergabe stehen.
Wo ligegt der Fheler
Bitte helft mir mal
SUB OPEN_Formular(formname)
Dim DatabaseContext as Object
Dim Datenquelle as Object
Dim oDBDok as Object
Dim posx as Integer
Dim posy as Integer
Dim sizeX as Integer
Dim sizeY as Integer
DIM str_dbname AS STRING: str_dbname = "rechnungen" 'Name der Datenbank
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)
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=posxx
posy=posyy
sizeX=sizeXX
sizeY=sizeYY
REM *** Öffnen des Formulars
oForm=obj_Forms.loadComponentFromURL(formname, "_self", 0, args())
With oForm.getCurrentController().getFrame().getContainerWindow()
.setPosSize(posx, posy, sizeX, sizeY, com.sun.star.awt.PosSize.POSSIZE)
End With
oDoc=ThisComponent
If oDoc.supportsService("com.sun.star.text.TextDocument" ) then
ThisComponent.CurrentController.ViewSettings.ZoomValue=100
end if
oDoc.CurrentController.Frame.getContainerWindow().setFocus
oDoc=ThisComponent
'hier geht es nach dem 2 aufruf nicht mehr
oForm1 = ThisComponent.Drawpage.forms.getByname("leistungform")
oForm1.Filter="rechnr=66"
Danke euch für eure Hilfe
mfg
Georg
END SUB