Abrir Formulario mediante instrución BASIC

Discute sobre las herramientas de la base de datos
Responder
puigdrau
Mensajes: 2
Registrado: Sab Mar 21, 2009 12:27 am

Abrir Formulario mediante instrución BASIC

Mensaje 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.
QuazzieEvil
Mensajes: 99
Registrado: Sab Dic 13, 2008 6:45 pm

Re: Abrir Formulario mediante instrución BASIC

Mensaje 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.
puigdrau
Mensajes: 2
Registrado: Sab Mar 21, 2009 12:27 am

Re: Abrir Formulario mediante instrución BASIC

Mensaje por puigdrau »

Muchas grácias, voy a probarlo esta noche y te cuento como me ha ido.
jrobmar
Mensajes: 1
Registrado: Sab May 09, 2009 10:54 am

Re: Abrir Formulario mediante instrución BASIC

Mensaje 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.
exau
Mensajes: 7
Registrado: Vie Jul 31, 2009 12:34 am

Re: Abrir Formulario mediante instrución BASIC

Mensaje 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
OpenOffice 3.1 en Windows xp
Avatar de Usuario
alexgarcia
Mensajes: 17
Registrado: Sab Feb 07, 2009 9:07 am

Re: Abrir Formulario mediante instrución BASIC

Mensaje 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
:D
Avatar de Usuario
alexgarcia
Mensajes: 17
Registrado: Sab Feb 07, 2009 9:07 am

Re: Abrir Formulario mediante instrución BASIC

Mensaje por alexgarcia »

Perdón no habí leido el mensaje de jrobmar, ahi estuvo mi respuesta , gracias por compartir sus conocimientos !

Saludos :bravo:
Responder