Página 1 de 1
Abrir Formulario mediante instrución BASIC
Publicado: Sab Mar 21, 2009 12:49 am
por puigdrau
Hola.
Me gustaría poder programar algunas cosas con el Basic de la aplicación Base de OpenOficce, antes con Access no tenia problemas y encontrava muchísima documentación a todas mis dudas, pero con OpenOfice es otra história.
Mis dudas son las siguientes:
1) En Access se dispone de la instrucción "DoCmd.OpenForm" para abrir formularios desde Basic, desde las opciones de esta misma instrucción, podemos pasar parámetros al formulario que abrimos. ¿Cual sería la instrucción homóloga en el Basic de OpenOffice para abrir formularios?.
2) ¿Cómo se hace referencia a un campo en concreto del registro en curso de un formulario abierto?. En Access era algo parecido a Me.Recordset!Campo
Con estas dudas por el momento tendria bastante para ir investigando y sacar mis propias conclusiones acerca de la forma de referenciar los objetos.
Muchas gracias.
Re: Abrir Formulario mediante instrución BASIC
Publicado: Sab Mar 21, 2009 5:34 pm
por QuazzieEvil
Baja la extension BaseTools. No es la version final, y tiene unos problemas. RunCmd is similar a DoCmd an Access y OpenFormDocument es similar a OpenForm. Las instructiones estan en Ingles, pero posible te ayuden.
Las columnas de la table enlasada al formulario se estan en la propiedad
Columns del formulario. Usa la function getByName("<nombre>"), or getByIndex(<indice>) para obener una columna (para el record actual). Este comando retorna un objeto (servicio) DataColumn. para obtener el valor de la columna usa la funcion que coresponde al typo de datos. getString(), getInt(), etc
Código: Seleccionar todo
Dim Col as Object
Col=Me.Columns.geByName("Nombre")
MsgBox Col.getString()
Col=Me.Columns.getByName("Edad")
MsgBox Col.getInt()
en este ejemplo uso la funcion
Me que es parte de la extension BaseTools
Para usar BaseTools, hay que cargarla primero
BasicLibraries.LoadLibrary("BaseTools")
Suponiendo que la extension esta instalada.
Re: Abrir Formulario mediante instrución BASIC
Publicado: Sab Mar 21, 2009 5:51 pm
por puigdrau
Muchas grácias, voy a probarlo esta noche y te cuento como me ha ido.
Re: Abrir Formulario mediante instrución BASIC
Publicado: Sab May 09, 2009 12:30 pm
por jrobmar
Esta respuesta la cogí del foro en inglés, y la verdad es que funciuona bien.
Para abrir un formulario desde otro formulario principal, te creas un botón.
En el apartado "Informacion adicional" pones el formulario que quieres abrir, despues te vas a la pestaña "Acontecimientos" y en el apartado "Antes de Ejecutar" insertas la macro siguiente:
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
Esta macro la puedes crear en el menu principal: Herramientas->Macros->Organizar Macros y creas una nueva en el apartado Mis Macros
Espero que esto te ayude.
Re: Abrir Formulario mediante instrución BASIC
Publicado: Vie Jul 31, 2009 12:47 am
por exau
Hola:
yo uso esta macro en openoffice 3.1 usando la propiedad de base que permite ahora crear macros en base. A mi me funciona muy bien
Sub AbrirFormTuFormulario()
Dim Control as Object
Control = ThisDatabaseDocument.CurrentController
If ( Not Control.isConnected() ) Then
Control.connect()
End If
Control.loadComponent(com.sun.star.sdb.application.DatabaseObject.FORM, "TUFORMULARIO",FALSE )
' Se abre el formulario para entrada de datos
End Sub
Dentro de la función donde dice "TUFORMULARIO" debes poner el nombre del formulario que quieres abrir o pasarlo como una variable, es decir puedes modificarlo a tu conveniencia.
Espero te ayude
Re: Abrir Formulario mediante instrución BASIC
Publicado: Vie Oct 02, 2009 7:39 pm
por alexgarcia
Exau , disculpa que me meta en este tema , pero es de mi interes , presisamente estaba buscando como llamar un formulario desde un formulario "Principal" , Probe tu rutina en una macro y funciona muy bien , ahora lo que no he podido es asignar esa macro a un BOTON . Me podrias dar una pista ?
Gracias de antemano
Re: Abrir Formulario mediante instrución BASIC
Publicado: Vie Oct 02, 2009 7:44 pm
por alexgarcia
Perdón no habí leido el mensaje de jrobmar, ahi estuvo mi respuesta , gracias por compartir sus conocimientos !
Saludos