Abrir Formulario mediante instrución BASIC
Abrir Formulario mediante instrución BASIC
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.
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.
-
- Mensajes: 99
- Registrado: Sab Dic 13, 2008 6:45 pm
Re: Abrir Formulario mediante instrución BASIC
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
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.
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()
Para usar BaseTools, hay que cargarla primero
BasicLibraries.LoadLibrary("BaseTools")
Suponiendo que la extension esta instalada.
Re: Abrir Formulario mediante instrución BASIC
Muchas grácias, voy a probarlo esta noche y te cuento como me ha ido.
Re: Abrir Formulario mediante instrución BASIC
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.
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
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
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
- alexgarcia
- Mensajes: 17
- Registrado: Sab Feb 07, 2009 9:07 am
Re: Abrir Formulario mediante instrución BASIC
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
Gracias de antemano
- alexgarcia
- Mensajes: 17
- Registrado: Sab Feb 07, 2009 9:07 am
Re: Abrir Formulario mediante instrución BASIC
Perdón no habí leido el mensaje de jrobmar, ahi estuvo mi respuesta , gracias por compartir sus conocimientos !
Saludos
Saludos