[RESUELTO] Como cerrar mjs de error o diálogos con OOO Basic

¿Nuevo en Apache OpenOffice? ¿No sabe cómo comenzar o dónde hacer su pregunta? ¡Este es el lugar!
Reglas del Foro
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.
Responder
Joseph_Cordon
Mensajes: 6
Registrado: Mar Abr 17, 2018 3:56 pm

[RESUELTO] Como cerrar mjs de error o diálogos con OOO Basic

Mensaje por Joseph_Cordon »

Buen día a todos, disculpen la molestia, tengo un pequeño problema...

He creado 2 script/código/Macro en OOO Basic: 1. EliminarHoja: Para eliminar Hoja "Info" del archivo adjunto "Reporte_Detallado.xls" y 2. Xls_to_csv: Para convertir el mismo archivo "Reporte_Detallado.xls" a formato .csv; pero tengo el problema que cuando los ejecuto, OpenOffice abre un diálogo donde, en el primer caso me consulta si en verdad deseo eliminar la hoja, como no lo logre agregar a la macro para cerrar ese diálogo de manera automática, creé el 2do. script "xls_to_csv", donde en este caso me advierte mediante otro diálogo que solo se convirtió la primera hoja a csv.

Los scripts si terminan funcionando pero hasta que le doy click de forma manual a los diálogos de "advertencia", lo cual, quiero agregar a los script/macros pero no he hallado cómo. He visto en este foro como crean un objeto como el cuadro de diálogo y luego se cierra con .dispose() o .endExecute() pero son diálogos que los mismos usuarios crean, en mi caso, son cuadros de diálogo que están por default en OpenOffice, no los cree yo. Si me pudieran apoyar, les agradecería mucho. Mi OpenOffice es versión 4.1.7 y el SO es W10 Pro

Les adjunto el código de ambos script/macros:
EliminarHoja

Código: Seleccionar todo

'URL_1 = WScript.Arguments.Item(0)
URL_1 = "C:\Users\joseph.cordon"
URL_1 = "file:///"&CStr(URL_1)&"\Downloads\Reporte_Detallado.xlsx"


'Cargar los objetos Open Office: Service Manager, Dispatcher y Desktop 
Set OOServiceManager = CreateObject("com.sun.star.ServiceManager")
Set OODispatcher = OOServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")
Set OODesktop = OOServiceManager.CreateInstance("com.sun.star.frame.Desktop")


'Cargar archivo descargado en formato .xls
Dim args()
Set OOSpreadSheet = OODesktop.loadComponentFromURL(URL_1, "_default", 0, args)


'Argumentos
dim args1(0) 
Set args1(0) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")

args1(0).Name = "Nr"
args1(0).Value = 2

'Mover a siguiente hoja y eliminar
call OODispatcher.executeDispatch(OOSpreadSheet.CurrentController.Frame, ".uno:JumpToTable", "", 0, args1)
call OODispatcher.executeDispatch(OOSpreadSheet.CurrentController.Frame, ".uno:Remove", "", 0, Array())

'Cerrar archivo
OOSpreadSheet.close(true)
'OOServiceManager.dispose()
OODesktop.terminate
xls_to_csv

Código: Seleccionar todo

URL_1 = WScript.Arguments.Item(0)
'URL_1 = "C:\Users\joseph.cordon"
URL_1 = "file:///"&CStr(URL_1)&"\Downloads\Reporte_Detallado_de_Procesamiento.xlsx"


'Cargar los objetos Open Office: Service Manager, Dispatcher y Desktop 
Set OOServiceManager = CreateObject("com.sun.star.ServiceManager")
Set OODispatcher = OOServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")
Set OODesktop = OOServiceManager.CreateInstance("com.sun.star.frame.Desktop")


'Cargar archivo descargado en formato .xls
Dim args()
Set OOSpreadSheet = OODesktop.loadComponentFromURL(URL_1, "_default", 0, args)


'Argumentos de guardado csv
dim args1(2) 
Set args1(0) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
Set args1(1) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
Set args1(2) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")

args1(0).Name = "URL"
args1(0).Value = "file:///C:/RPA/Reportediario.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "44,34,ANSI,1,,0,false,true,true"

'Guardar como csv
call OODispatcher.executeDispatch(OOSpreadSheet.CurrentController.Frame, ".uno:SaveAs", "", 0, args1)

'Cerrar archivo
OOSpreadSheet.close(true)
'OOServiceManager.dispose()
OODesktop.terminate
Adjuntos
Reporte_Detallado.xls
(19.5 KiB) Descargado 125 veces
Última edición por Joseph_Cordon el Jue Nov 04, 2021 7:14 am, editado 1 vez en total.
Versi??n OpenOffice 4.1.1 en Windows 7 Professional
Joseph_Cordon
Mensajes: 6
Registrado: Mar Abr 17, 2018 3:56 pm

Re: Como cerrar mensajes de error o diálogos con OOO Basic

Mensaje por Joseph_Cordon »

¡Hola!

Adjunto el script/código con la solución a mi problema; básicamente solo agregué la instrucción para borrar la hoja "Info" sin que me aparezca algún mensaje de advertencia, para luego, ejecutar la conversión de xls a csv.:

Código: Seleccionar todo

'Script para conversión de archivos .xls a archivos .csv

URL_1 = "C:\Users\joseph.cordon"
URL_1 = "file:///"&CStr(URL_1)&"\Downloads\Reporte_Detallado.xls"


'Cargar los objetos Open Office: Service Manager, Dispatcher y Desktop 
Set OOServiceManager = CreateObject("com.sun.star.ServiceManager")
Set OODispatcher = OOServiceManager.CreateInstance("com.sun.star.frame.DispatchHelper")
Set OODesktop = OOServiceManager.CreateInstance("com.sun.star.frame.Desktop")
Set OOSpreadSheet = OODesktop.loadComponentFromURL(URL_1, "_default", 0, Array())
Set oHojas = OOSpreadSheet.Sheets

'Eliminar Hoja Info
oHojas.removeByName("Info")

'Argumentos de guardado csv
dim args1(2) 
Set args1(0) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
Set args1(1) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
Set args1(2) = OOServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")

args1(0).Name = "URL"
args1(0).Value = "file:///C:/RPA/G002%20CreditosTemporales/Reportediario.csv"
args1(1).Name = "FilterName"
args1(1).Value = "Text - txt - csv (StarCalc)"
args1(2).Name = "FilterOptions"
args1(2).Value = "44,34,ANSI,1,,0,false,true,true"

'Guardar como csv
call OODispatcher.executeDispatch(OOSpreadSheet.CurrentController.Frame, ".uno:SaveAs", "", 0, args1)

'Cerrar archivo
OOSpreadSheet.close(true)
OODesktop.terminate
Versi??n OpenOffice 4.1.1 en Windows 7 Professional
Responder