Domenico Odetti ha scritto:
ciao *,
con base
qualcuno sa come si scrive una macro che, collegata ad un pulsante all'interno di un formulario, apra un altro formulario?


se il form è esterno al db (come era in Oo 1.x) basta l'url. Altrimenti prova questa macro che tempo fa è stata postata nella mailing list (non l'ho provata eh):


La mail va' a capo dopo 72 caratteri quindi la macro la devi aggiustare.

' Qui gli passi il nome del file .odb e qui il nome del formulario
Sub subDisplayForm(sDatabaseName as string, sFormName as string)
Dim oForm
Dim mArgs(1) as new com.sun.star.beans.PropertyValue
oDatabase = fnGetOpenDatabase(sdatabaseName)
oConnection = oDatabase.DataSource.getConnection("","")
mArgs(0).name = "OpenMode"
mArgs(0).value = "open" '"openDesign" ' '"openForMail"
mArgs(1).name = "ActiveConnection"
mArgs(1).value = oConnection
oForm = oDatabase.getFormDocuments.getByName(sFormName)
'oForm.visibilityChanged(true)
oDatabase.getFormDocuments.loadComponentFromURL(sFormName, "_blank", 0, mArgs())
End Sub

function fnGetOpenDatabase(sDatabaseName as string)
oEnum = StarDesktop.getComponents.createEnumeration
while oEnum.hasMoreElements
oPosDB = oEnum.nextElement
if oPosDB.implementationName = "com.sun.star.comp.dba.ODatabaseDocument" then
'msgbox oPosDB.DataSource.name
if right(oPosDB.DataSource.name, len(sDatabaseName)) = sDatabaseName then
fnGetOpenDatabase = oPosDB
exit function
end if
end if
wend
end function


--
http://www.venerandi.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a