2009/5/12 francisco f. <[email protected]>

> Respuesta
> http://user.services.openoffice.org/es/forum/viewtopic.php?f=31&t=702
>
> Sub openFormByTag(oEv)
> REM OOo3.0: Reads the form name from a calling control's tag
> cWhat = com.sun.star.sdb.application.DatabaseObject.FORM
> oModel = oEv.Source.getModel()
> sName = oModel.Tag
> oView = oModel.Parent.Parent.Parent.Parent.getCurrentController()
> oView.loadComponent(cWhat, sName, FALSE)
> End Sub
>
>
> lo de oEV supongo que es el Event de la otra macro
>
>
> Esta es la modificada por mi, con la nueva orden de OObase 3.1
>
> sub abreformulario (Event As Object)
> cWhat = com.sun.star.sdb.application.DatabaseObject.FORM
> oModel = Event.Source.getModel()
> sName = oModel.Tag
> ThisDatabaseDocument.FormDocuments.getByName( sName ).open
> end sub
>
> Recordar que tag en propiedades es el  " Informacion adicional"
>
>
> ¿Alguien encontro donde explica lo del event y sus opciones?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

     Hola Francisco, probé tus macros y funcionan excelente, además de la
ventaja de reducir las líneas de código necesarias. Sólo quiero mencionar
que también pueden funcionar para ejecutar informes, modificando un poco
así las macros para ambas versiones (3.0 y 3.1.0) y por supuesto recordando
poner en los controles del botón el nombre del formulario o reporte que se
desea abrir (casilla de "Información adicional"):

-------------------------------------------------------------------------------------------------------------------------------------
*Para OOo 3.0 (que funcionan también para la versión 3.1.0):*

Sub OpenFormByTag(oEv)
 REM OOo3.0: Reads the form name from a calling control's tag
 cWhat = com.sun.star.sdb.application.DatabaseObject.FORM
 oModel = oEv.Source.getModel()
 sName = oModel.Tag
 oView = oModel.Parent.Parent.Parent.Parent.getCurrentController()
 oView.loadComponent(cWhat, sName, FALSE)
End Sub

Sub OpenReportByTag(oEv)
 REM OOo3.0: Reads the report name from a calling control's tag
 cWhat = com.sun.star.sdb.application.DatabaseObject.REPORT
 oModel = oEv.Source.getModel()
 sName = oModel.Tag
 oView = oModel.Parent.Parent.Parent.Parent.getCurrentController()
 oView.loadComponent(cWhat, sName, FALSE)
End Sub
-------------------------------------------------------------------------------------------------------------------------------------

*Para OOo 3.1.0:*

Sub OpenFormByTag(Event As Object)
 oModel = Event.Source.getModel()
 sName = oModel.Tag
 ThisDatabaseDocument.FormDocuments.getByName( sName ).open
End Sub

Sub OpenReportByTag(Event As Object)
 oModel = Event.Source.getModel()
 sName = oModel.Tag
 ThisDatabaseDocument.ReportDocuments.getByName( sName ).open
End Sub
-------------------------------------------------------------------------------------------------------------------------------------

    En estas dos últimas macros me tomé la libertad de quitar la siguiente
línea de tu macro original:

cWhat = com.sun.star.sdb.application.DatabaseObject.FORM
y funcionó igual, me parece que en este caso no tiene uso, si me equivoco
por favor corrígeme.

    Saludos.

-- 
    Argel.

Responder a