Extension para resaltar fila y/o columna activa

Discute el uso de extensiones desarrolladas por terceros dentro de Apache OpenOffice
Responder
rojes
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Extension para resaltar fila y/o columna activa

Mensaje por rojes »

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/do ... hp?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
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Extension para resaltar fila y/o columna activa

Mensaje por SLV-es »

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
rojes
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Extension para resaltar fila y/o columna activa

Mensaje por rojes »

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
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Extension para resaltar fila y/o columna activa

Mensaje por RGB-es »

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/LibO, por favor, utilice el foro para sus preguntas

LibreOffice 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
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Extension para resaltar fila y/o columna activa

Mensaje por SLV-es »

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
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Extension para resaltar fila y/o columna activa

Mensaje por xiseme »

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

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) Descargado 595 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.
rojes
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Extension para resaltar fila y/o columna activa

Mensaje por rojes »

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
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Extension para resaltar fila y/o columna activa

Mensaje por SLV-es »

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
rojes
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Extension para resaltar fila y/o columna activa

Mensaje por rojes »

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
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Extension para resaltar fila y/o columna activa

Mensaje por SLV-es »

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
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Extension para resaltar fila y/o columna activa

Mensaje por xiseme »

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) Descargado 603 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.
mriosv
Mensajes: 2334
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: Extension para resaltar fila y/o columna activa

Mensaje por mriosv »

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 (Win10x64)
rojes
Mensajes: 56
Registrado: Mié Dic 15, 2010 1:41 pm

Re: Extension para resaltar fila y/o columna activa

Mensaje por rojes »

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
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Extension para resaltar fila y/o columna activa

Mensaje por mauricio »

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
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Extension para resaltar fila y/o columna activa

Mensaje por mauricio »

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
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Extension para resaltar fila y/o columna activa

Mensaje por xiseme »

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.
Responder