Muchas gracias Mauricio, tu indicación es como siempre exacta
gracias nuevamente
sLs
Tengo un problema que no he podido resolver,
Si abro el formulario desde openoffice del menu abrir, se ejecuta correctamente, un procedimiento en el evento abrir,
y el comportamiento es normal,
Pero desde un macro que lo unico que hace es abrir el formulario deja de funcionar, muestra todos los controles pero
no responde a los eventos.
ejemplo de la funcion que abre el formulario,
sub abrir
openDocument(convertoUrl("c:\oo3\formulario.odt"), noArg())
end sub
tengo los macros seteados en nivel bajo, el procedimiento esta en una libreria personal y ejecuta otro de la libreria tools de openoffice que se abre antes de ejecutar el codigo, todo parece funcionar pero
no responde a ningun evento. Si realizo una recarga de documento funciona correctamente,
No tengo ni idea por donde pueda estar el problema, agradezco cualquier sugerencia para ver de solucionarlo
Muchas gracias
[RESUELTO] Abrir Formulario por codigo -- excelente Mauricio
[RESUELTO] Abrir Formulario por codigo -- excelente Mauricio
Última edición por jvdeoli el Vie Abr 02, 2010 1:25 am, editado 1 vez en total.
OpenOffice 3.2-OpenSuSe 11.3
Re: Abrir Formulario por codigo
Hola...
Creo que hay una confusión de nombres, ¿a que llamas formulario?, por que lo que estas intentando abrir es un archivo de Writer, un formulario por si solo no puede existir, estos, están incrustados "dentro" de los documentos, con abrir el documento que lo contiene "deberías" de ver y usar el formulario respectivo. Ahora, para abrir el documento, el siguiente código lo abre sin problemas.
Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], de esta forma conseguiremos un foro más ordenado.
Saludos
Creo que hay una confusión de nombres, ¿a que llamas formulario?, por que lo que estas intentando abrir es un archivo de Writer, un formulario por si solo no puede existir, estos, están incrustados "dentro" de los documentos, con abrir el documento que lo contiene "deberías" de ver y usar el formulario respectivo. Ahora, para abrir el documento, el siguiente código lo abre sin problemas.
Código: Seleccionar todo
Sub AbrirDocumento()
Dim sRuta As String
Dim mArg()
Dim oDocumento As Object
'Reemplaza esta ruta por la ruta de tu archivo
sRuta = ConvertToUrl( "/home/mau/formulario.odt" )
oDocumento = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mArg() )
End SubSaludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Abrir Formulario por codigo
Mauricio gracias por responder.
El formulario esta dentro del documento que abro, pero no responde a los eventos por mas que cargue todos los
controles correctamente,
dentro del documento esta el formulario, el mismo tiene una libreria para completar los controles de datos y
el manejo de la base de datos y toda la logica contra la base de datos.
TODO FUNCIONA si lo abro desde el menu archivo de Openoffice, carga los datos, consulta a la base de datos
y responde a los movimientos pero si ejecuto el codigo desde una macro que me abra el archivo, lo abre sin
problemas, carga todos los controles pero me lo muestra como si no tuviera programado toda la logica de controles
El formulario tiene una consulta a 3 tablas, y un procedimiento "abrir_formulario" que esta setado en el evento
"Abrir Documento", del mismo archivo, repito si voy al archivo y hago doble click, o si voy al Menu Archivo y abrir
documento - FUNCIONA PERFECTO, pero si el documento se abre de un procedimiento no logro que funcione hasta
que voy al menu y recargo el archivo.
No tengo ni idea porque es este comportamiento, si se te ocurre cualquier cosa para probar te agradeceria mucho
sLs
El formulario esta dentro del documento que abro, pero no responde a los eventos por mas que cargue todos los
controles correctamente,
dentro del documento esta el formulario, el mismo tiene una libreria para completar los controles de datos y
el manejo de la base de datos y toda la logica contra la base de datos.
TODO FUNCIONA si lo abro desde el menu archivo de Openoffice, carga los datos, consulta a la base de datos
y responde a los movimientos pero si ejecuto el codigo desde una macro que me abra el archivo, lo abre sin
problemas, carga todos los controles pero me lo muestra como si no tuviera programado toda la logica de controles
El formulario tiene una consulta a 3 tablas, y un procedimiento "abrir_formulario" que esta setado en el evento
"Abrir Documento", del mismo archivo, repito si voy al archivo y hago doble click, o si voy al Menu Archivo y abrir
documento - FUNCIONA PERFECTO, pero si el documento se abre de un procedimiento no logro que funcione hasta
que voy al menu y recargo el archivo.
No tengo ni idea porque es este comportamiento, si se te ocurre cualquier cosa para probar te agradeceria mucho
sLs
OpenOffice 3.2-OpenSuSe 11.3
Re: Abrir Formulario por codigo
Hola...
Cuando abres un archivo por código, de forma predeterminada las macros están deshabilitadas, tienes que indicarle que se abra con las macros habilitadas de la siguiente manera:
Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], de esta forma conseguiremos un foro más ordenado.
Saludos
Cuando abres un archivo por código, de forma predeterminada las macros están deshabilitadas, tienes que indicarle que se abra con las macros habilitadas de la siguiente manera:
Código: Seleccionar todo
Sub AbrirDocumento()
Dim sRuta As String
Dim mArg(0) As New "com.sun.star.beans.PropertyValue"
Dim oDocumento As Object
sRuta = ConvertToUrl( "/home/mau/formulario.odt" )
mArg(0).Name = "MacroExecutionMode"
mArg(0).Value = 4
oDocumento = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mArg() )
End SubSaludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro