REM REM REM REM ***** BASIC – OpenOffice ***** ***** Aplicaciones Informáticas en Geología ***** ***** Miguel Ángel Sanz ***** ***** Fac. CC. Geológicas – UCM **** 'Variables globales Private DialogoGrados as Object 'Ejecución dialogo Sub EjecutaDialogo DialogLibraries.LoadLibrary("Standard") DialogoGrados = createUnoDialog(DialogLibraries.Standard.grados1) DialogoGrados.execute() End Sub 'Calculo de F a C Sub Gradosfc 'Variables utilizadas para el procedimiento Dim gradosf as single Dim gradosc as single 'Obtención de datos y calculo de conversión gradosf = val(DialogoGrados.Model.TextField1.Text) gradosc = (gradosf-32)/1.8 DialogoGrados.Model.TextField2.Text = str(gradosc) End Sub Sub Gradoscf 'Variables utilizadas para el procedimiento Dim gradosf as single Dim gradosc as single 'Obtención de datos y calculo de conversión gradosc = val(DialogoGrados.Model.TextField2.text) gradosf = (gradosc* 1.8) + 32 DialogoGrados.Model.TextField1.Text = str(gradosf) End Sub 'Limpiar los cuadros de texto Sub LimpiaTexto DialogoGrados.Model.TextField1.Text= "" DialogoGrados.Model.TextField2.Text ="" end sub 'Cierra dialogo Sub CierraDialogo DialogoGrados.endExecute() End Sub 'Mandar al documento y bajar a la siguiente linea Sub MandarDocumento ' varaibles de objetos Dim DocumentoOpen as object Dim Hoja as object Dim Cursor as object Dim ServicioHoja as object 'Variables utilizadas para el procedimiento Dim gradosf as single Dim gradosc as single Dim control as integer Dim contar as integer 'Apertura de servicio de hoja de calculo ServicioHoja = createUnoService ("com.sun.star.sheet.SpreadsheetDocument") 'Llamada al documento activo DocumentoOpen = StarDesktop.CurrentComponent 'Llamada a la hoja 1 del libro de calculo Hoja= DocumentoOpen.Sheets.getByName("Hoja1") ' Nos posicionamos en la primera celda Cursor = Hoja.getCellByPosition (0,0) 'Lectura de datos de la casilla del cuadro de dialogo gradosf =val(DialogoGrados.Model.TextField1.Text) gradosc =val(DialogoGrados.Model.TextField2.Text) ' Condición de análisis de la ocupación de la casilla - vacía if Cursor.Type = com.sun.star.table.CellContentType.EMPTY then 'escritura de los datos de encabezamiento Cursor.String = "Fahrenheit" Cursor = Hoja.getCellByPosition(1,0) Cursor.String = "Celsius" 'posicionamiento en la primera celda de introducción de datos e introducción Cursor = Hoja.getCellByPosition(0,1) Cursor.String = gradosf Cursor = Hoja.getCellByPosition(1,1) Cursor.String = gradosc ' análisis de casilla llena else control = 0 contar= 0 'Creamos un bucle que mire donde tenemos casillas vacías do until control = 1 Cursor = Hoja.getCellByPosition(0,contar) 'Condicional de comprobación de casilla vacía if Cursor.Type = com.sun.star.table.CellContentType.EMPTY then control = 1 else contar= contar+1 end if loop ' Rellena las casillas vacías Cursor = Hoja.getCellByPosition(0,contar) Cursor.String = gradosf Cursor = Hoja.getCellByPosition(1,contar) Cursor.String = gradosc end if end sub ' Procedimiento principal Sub Main 'Apertura del cuadro de dialogo EjecutaDialogo() End Sub