Extension para resaltar fila y/o columna activa

Discute el uso de extensiones desarrolladas por terceros dentro de Apache OpenOffice

Extension para resaltar fila y/o columna activa

Notapor rojes » Dom Oct 27, 2013 6:01 am

Hola quiero proponer a la comunidad de Openoffice y Libreoffice la creación de una extension que agregue la funcionalidad opcional a Openoffice y Libreoffice, de resaltar la fila y/o la columna activa, de tal forma que nuestra ofimatica adquiera una caracteristica adicional que le permita a sus usuarios ubicar mejor concordancia y ubicación de de valores, en aquellas hojas con demasiadas filas y/o columnas de datos. Esto permitiría trabajar de manera mas comoda y eficiente, a mi juicio más ergonómica.

Agradezco a todos aquellos con mucho más conocimiento que YO al respecto, aportar su grano de arena a fin de que este proyecto salga adelante.

Como comienzo, propongo una macro desarrollada por Mauricio: http://forum.openoffice.org/es/forum/download/file.php?id=4168

Como procedimientos iniciales para el desarrollo de esta extension, propongo la sugerencia aportada por Federico.

1) Agregar por codigo los dos rectangulos a la hoja que desee usarse, si la hoja ya tienes imagenes iniciales entonces tendria que ver por codigo que numero de indice tienen los rectangulos agregados y trabajar sobre esos indices o nombres.
2) Desde codigo tendria que asignar la macro al evento "al cambiar la seleccion" de la hoja en uso.
3) Tendria que ver desde codigo si la hoja de aplicacion es la Hoja1 o la Hoja2 o la Hoja3 o la HojaN
4) Tendria que ver si tal vez en un libro no deseas aplicar esa caracteristica.


Gracias a todos los interesados

Roberto
Última edición por rojes el Mar Oct 29, 2013 6:27 pm, editado 1 vez en total
Libreoffice 5.1.3 Debian 8 Jessie
rojes
 
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Extension para resaltar fila y/o columna activa

Notapor SLV-es » Dom Oct 27, 2013 1:21 pm

Me encanta la idea de la extensión, pero no nos quedemos ahí.

Creo que es una excelente idea, y propongo que eleves la petición a la web de Bugzilla para AOO donde se puede sugerir como mejora en Calc, y donde podemos votarla.

Si no sabes cómo redactar la petición en inglés, redáctala aquí en castellano y te ayudarán a traducirla.

Gracias
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
SLV-es
 
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España

Re: Extension para resaltar fila y/o columna activa

Notapor rojes » Dom Oct 27, 2013 7:46 pm

Me parece bien si podemos seguir adelante con el desarrollo de la extensión y a la par solicitar se incluya la característica en el código del programa.

Saludos,

Roberto
Libreoffice 5.1.3 Debian 8 Jessie
rojes
 
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Extension para resaltar fila y/o columna activa

Notapor RGB-es » Lun Oct 28, 2013 1:08 am

Eso ya fue comentado en este tema: [Propuesta] Resaltar fila activa en calc donde se da un enlace a un pedido ya existente.

Mientras se implementa, se puede ir empaquetando la extensión. Quizás podría irse comentando en el reporte que la macro existe ;)
No respondo mensajes privados sobre AOO, por favor, utilice el foro para sus preguntas

AOO/LibO en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
Avatar de Usuario
RGB-es
 
Mensajes: 4738
Registrado: Lun Nov 24, 2008 10:46 am

Re: Extension para resaltar fila y/o columna activa

Notapor SLV-es » Lun Oct 28, 2013 4:08 am

Hay que ver como tengo la cabeza...
Si incluso lo voté !!! :lol: :lol: :lol:
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
SLV-es
 
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España

Re: Extension para resaltar fila y/o columna activa

Notapor xiseme » Lun Oct 28, 2013 5:19 am

Mientras llegan los más expertos, unas macros (huelga decir que mejorables) basadas en la de Mauricio que
- Si le pasamos un rango de celdas resaltará fila/columna solo en ese área
- Si no se le pasa, ninguno asume el área con datos
- cuando se selecciona celda fuera del área quita el resalte.

En mis pruebas es funcional aunque además de pulir el código, echo en falta
- enviar el dibujo-formas al fondo de la hoja Mauricio dió la solución
- poder llamarlos por su nombre en vez de por su índice.
Código: Seleccionar todo   Expandir vistaContraer vista
Sub Resalta
'Asignar una macro al evento «Al cambiar selección» de la hoja llamando a la subrutina/función ResaltarXY

ResaltarXY("RangoT")  '→ Un rango con nombre
' ResaltarXY("C7:N77")  '→ dirección de rango de celdas
' ResaltarXY("")      '→ Cadena vacía → hasta última celda con datos
' ResaltarXY()         '→ ausente → hasta última celda con datos
End Sub

'______________________________________________________________
Sub ResaltarXY(Optional nRango)
'Parámetros: nombre de un rango "MiNombreDeRango" o "A1:AA50000" o "Hoja.A1:$G$55"
'Resalta fila y columna en el rango, cuando se selecciona una de sus celdas
'Requisitos: han de crearse dos rectángulos en la hoja del rango
'si no se le pasa como nombre de rango/"" asume el área con datos de la hoja
'Poner en «Mis Macros» para que pueda ser llamada desde cualquier hoja

On Error GoTo Salir
Dim oDoc As Object
Dim oControlador As Object
Dim oCursor As Object
Dim oSel As Object
Dim oDP As Object
Dim shape1 As Object
Dim shape2 As Object
Dim pos
Dim size
Dim Ancho
Dim Alto
Dim RResalt
Dim FilaSel
Dim ColSel
Dim oDib As Object
Dim i As Integer
Dim ETQ As String
   ETQ= "BarraResaltar"


   oDoc = ThisComponent
   oControlador = oDoc.CurrentController
   oSel = oControlador.Selection
   
   If Not (oSel.ImplementationName = "ScCellObj") Then 'Si la seleccion no es una celda nos vamos
      GoTo Fin
   End If

   oDP = oSel.getSpreadSheet().getDrawPage()
   
'si la celda seleccionada no está en rango → quitar dibujos del resalte solamente y salir
   ColSel = oSel.getRangeAddress.StartColumn
   FilaSel = oSel.getRangeAddress.StartRow

   If IsMissing(nRango) or nRango="" Then
      oCursor = oSel.getSpreadSheet.createCursorByRange(oSel)
      oCursor.gotoEndOfUsedArea( False )
       nRango= Replace(oCursor.AbsoluteName, ".",  ".A1:")
   End If
   RResalt = oControlador.ActiveSheet.getCellRangeByName(nRango)      
   If ColSel > RResalt.getRangeAddress.EndColumn Or ColSel < RResalt.getRangeAddress.StartColumn Or _
      FilaSel > RResalt.getRangeAddress.EndRow Or FilaSel < RResalt.getRangeAddress.StartRow Then
      For i= (oDP.getCount - 1) To 0 Step -1
         oDib = oDP.getByIndex(i)
         If oDib.Name = ETQ & "Columna" Or oDib.Name = ETQ & "Fila" Then
            oDP.Remove(oDib)
         End If
      Next
      GoTo Fin
   Else
      'Estamos en el área → crear dibujos si no están creados   
      Dim index1, index2 As Integer
      For i=0 To oDP.getCount - 1
         oDib = oDP.getByIndex(i)
         If  oDib.Name  = ETQ & "Columna" Then
            index1 = i
         ElseIf  oDib.Name  = ETQ & "Fila" Then
            index2 = i   
         End If
      Next
      If index2 <1 Then   
         DibForma(5000, 300, ETQ & "Columna")
         DibForma(500, 3000, ETQ & "Fila")
      End If   
   End If

   oCursor = RResalt.getSpreadSheet.createCursorByRange(RResalt)
   Ancho = oCursor.Size.Width
   Alto = oCursor.Size.Height   
   oCursor.gotoEndOfUsedArea( False )

   shape1 = oDP.getByIndex(oDP.getCount - 1) ' esto supone que no se deben crear dibujos ...
   shape2 = oDP.getByIndex(oDP.getCount - 2) ' ... con celda seleccionada en area de resaltado
   
   pos = oSel.Position
   size = oSel.Size
   size.Width = Ancho

   pos.X = RResalt.Position.X
   shape1.setPosition(pos)
   shape1.setSize(size)
   
   pos = oSel.Position
   size = oSel.Size   
   size.Height = Alto
   
   pos.Y =  RResalt.Position.Y
   shape2.setPosition(pos)
   shape2.setSize(size)
Fin:
   Exit Sub
Salir:
   MsgBox " Ummmm ... error!" & Chr(13) & "¿Es correcto el nombre del rango?",, "Aviso"
End Sub 

'--------------------------------------------------------------------------------
Sub DibForma(Ancho As Long, Alto As Long, nDib As String, Optional TipoForma As String)
'Crea un dibujo en la hoja activa desde la que es llamada
'Poner en «Mis macros» para que sea accesible siempre.
Dim oPaginaDibujo As Object
Dim oForma As Object
Dim oTam As New com.sun.star.awt.Size

     oPaginaDibujo = ThisComponent.getCurrentController.getActiveSheet.getDrawPage()
     If IsMissing(TipoForma) Then TipoForma = "RectangleShape"
     oForma = ThisComponent.createInstance("com.sun.star.drawing." & TipoForma) 'RectangleShape")

     oTam.Width= Ancho
     oTam.Height= Alto

     With oForma
   .LineStyle = com.sun.star.drawing.LineStyle.NONE
   .FillColor = RGB( 75,75,75 )
   .FillTransparence = 85
        .setSize (oTam)   
        .LayerID = 1
   .Name = nDib
     End With

     oPaginaDibujo.Add( oForma )

End Sub
ResaltadoDeFilaColumaEnArea.ods
(12.16 KiB) 313 veces
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme
 
Mensajes: 1888
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Extension para resaltar fila y/o columna activa

Notapor rojes » Mar Oct 29, 2013 5:17 pm

Agradecería si me pueden decir como votar por la petición de Resaltado de fila y columna activa y proponer por la modificación de que sea Resaltado opcional de fila y/o columna activa.

No obstante sigo esperanzado en que se logre el desarrollo de la extensión propuesta como solución provisional, que muestre tanto a los usuarios, como a los desarrolladores del proyecto A. openoffice y Libreoffice, lo importante de esta propuesta.

Por ultimo conmino a todos los usuarios de las dos ofimáticas libres a votar masivamente esta petición que redundara en el robustecimiento de ellas.

Saludos,

Roberto
Libreoffice 5.1.3 Debian 8 Jessie
rojes
 
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Extension para resaltar fila y/o columna activa

Notapor SLV-es » Mar Oct 29, 2013 9:42 pm

Accede a esta página https://issues.apache.org/ooo/show_bug.cgi?id=116489
Date de alta
Luego podrás votar: 2 puntos máximo por cada tema, y un máximo de 5 para cada aplicación (5 para writer, 5 para calc, etc)
Saludos
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
SLV-es
 
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España

Re: Extension para resaltar fila y/o columna activa

Notapor rojes » Mié Oct 30, 2013 4:50 am

Ya di 2 votos, la propuesta solo tiene 3 votos, invito a todos los que como yo requerimos de esta característica en nuestra ofimática, se que hay muchos que no han votado porque no han comprendido lo importante de esta petición, comiencen a utilizar una de las distintas macros propuestas y notaran el descanso en la vista.

Espero aportes para la extensión.

Saludos,

Roberto
Libreoffice 5.1.3 Debian 8 Jessie
rojes
 
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Extension para resaltar fila y/o columna activa

Notapor SLV-es » Mié Oct 30, 2013 5:13 pm

Aprovecha y vota por otros temas que consideres interesantes. Tienes 5 votos para Calc en total, pero tienes otros 5 para cada una de los otras aplicaciones :)
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
SLV-es
 
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España

Re: Extension para resaltar fila y/o columna activa

Notapor xiseme » Jue Oct 31, 2013 2:35 am

No es una extensión, pero en el adjunto está la macro «ResaltarXY()» que hace "dignamente" tarea de resaltar fila+columna. El código sigue la pautas de mriosv y mauricio, como no soy programador no es muy limpio; aún así creo que se entenderá.
ResaltadoDeFilaColumaPruebas.ods
(46.06 KiB) 310 veces
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme
 
Mensajes: 1888
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Extension para resaltar fila y/o columna activa

Notapor mriosv » Vie Nov 01, 2013 12:58 am

Xiseme, se ve muy bien la idea de limitarlo al área con datos. :idea:
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice 5 (Win10x64)
mriosv
 
Mensajes: 2168
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: Extension para resaltar fila y/o columna activa

Notapor rojes » Mié Nov 06, 2013 5:29 am

Quisiera saber a cuanto tiempo se cierra un tema por inactividad. Espero que eso no le suceda a este.
Libreoffice 5.1.3 Debian 8 Jessie
rojes
 
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Extension para resaltar fila y/o columna activa

Notapor mauricio » Mié Nov 06, 2013 3:52 pm

Pocos temas en este foro se han cerrado, la inactividad NO es uno de ellos, temas bastante viejos se siguen consultando y ampliando por tener referencias validas... lo que quiero decir es que mientras haya alguien interesado en ver y agregar información, los temas siguien abiertos, solo se cierran en casos graves de faltas a las normas de este foro o en otros raros casos...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5787
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Extension para resaltar fila y/o columna activa

Notapor mauricio » Lun Nov 11, 2013 12:31 am

mriosv escribió:Xiseme, se ve muy bien la idea de limitarlo al área con datos. :idea:

Así funciona la primer versión, pero esto no funciona muy bien cuando se tienen las ventanas divididas o inmovilizadas...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5787
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: Extension para resaltar fila y/o columna activa

Notapor xiseme » Lun Nov 11, 2013 2:06 am

He probado en este fichero con ventanas divididas/inmovilizadas y 10000 filas (se hace pesado y tengo que ponerlo en servidor externo :D )
http://www.mediafire.com/download/qct2b ... ltarXY.ods
Aunque lo he probado solo someramente, no he notado problemas.
Bueno, que la macro que he llamado aquí ResaltadoXY no debe ejecutarse directamente (error 380) sino que debe ser llamada por la que se asigne al evento, pero eso es en todos los caso con o sin fijar/inmovilizar ventanas.

Nota: En esta versión se resaltan la(s) fila(s) y columna(s) cuando la selección es una celda o un rango contiguo de celdas (no sé si aporta mucha utilidad pero como cuesta tan poco ... :mrgreen: )
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme
 
Mensajes: 1888
Registrado: Lun Nov 24, 2008 1:13 pm


Volver a Extensiones

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 78 invitados