On Tuesday 12 May 2009 00:05:50 Argel Gastélum Arellánez wrote:
> 2009/5/11 francisco f. <[email protected]>
>
> > Saque de la lista la macro para abrir formularios,
> >   Sub OpenForm(Event As Object)
> >      Dim Form As Object
> >      Dim FormDoc As Object
> >      Dim Forms As Object
> >      Dim DBDoc As Object
> >      Dim Args(1) As New com.sun.star.beans.PropertyValue
> >      Dim FormName As String
> >      Form=Event.Source.Model.Parent
> >      Forms=Form.Parent
> >      FormDoc=Forms.Parent
> >      DBDoc=FormDoc.Parent
> >
> >          Args(0).Name="ActiveConnection" :
> > Args(0).Value=Form.ActiveConnection
> >
> >      Args(1).Name="OpenMode" : Args(1).Value="open"
> >      FormName="nombre-formulario"
> >      DBDoc.FormDocuments.loadComponentFromURL(FormName,"_blank",0,Args)
> >
> >     End Sub
> >
> > Funciona bien, pero hay que repetirla por cada formulario que quieres
> > abrir.
> > La cuestion es como se le puede pasar por ejemplo el nombre del boton o
> > la etiqueta, que presionas y que se llamara igual que el formulario a
> > abrir para
> > evitarnos el tener la misma macro repetida un monton de veces.
> >
> > Saludos
> >

>     Hola Francisco. Usando la versión OOo 3.0 usé la macro que mencionas
> con excelentes resultados, aunque con la desventaja que mencionas de tener
> que repetirla muchas veces. Si usas la nueva versión 3.1 tal vez te sea más
> fácil aplicar esto que me acabo de encontrar en la siguiente dirección:
>
> http://wiki.services.openoffice.org/wiki/Base/New_features_in_3_1
>
> Está en inglés, y lo que dice es esencialmente lo siguiente:
>
> ---------------------------------------------------------------------------
>---------------------------------------------------------- Easier
> programmatic access to form/report documents
>
> Programmatic access to forms/reports contained in database documents is
> easier than ever before:
>
> ThisDatabaseDocument.FormDocuments.getByName( "form name" ).open
>
> ThisDatabaseDocument.ReportDocuments.getByName( "report name" ).open

>
>     No he tenido oportunidad de probarlo todavía por falta de tiempo, pero
> parece más sencillo. Espero te sirva.
>
>     Saludos y suerte.

Funciona perfectamente y naturalmente reduce el codigo usado.
Peeerooo sigo diciendo que es mejor si podemos extraer el nombre o el label 
del boton y pasarlo como argumento para lanzar un formulario. De esta forma 
maximizamos el uso del codigo.
En la macro anterior se utiliza event para capturar el objeto que se pulsa, el 
boton en este caso, ¿como se extraen los datos de eso?
Seguiremos investigando


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Responder a