Rejilla 7.17 no se ajusta ?


([N4] Ramon Denuc) #1

Tengo instalado la versión 7.17 de Velneo.

Y he podido apreciar que una rejilla que tengo con varias columnas ahora no se ajusta a la ventana del monitor, con la versión anterior si se ajustaba automáticamente.

¿ Lo podéis confirmar ?


([N4] Ramon Denuc) #2

Disculpas, pero, ¿A nadie más le pasa que la rejilla con muchas columnas y que antes se ajustaba automáticamente a la resolución de cada monitor, ahora con la versión 7.17 no se ajusta y además no muestras las columnas que están más a la derecha?

Saludos


([N1] wikan) #3

Buenas Ramón,
la verdad es que no he apreciado ese comportamiento. Con muchas columnas, cuantas son? Tengo rejillas de 12-15 columnas y sin problema.


([N4] Ramon Denuc) #4

Hola Manuel,

Pues tengo un problema.

Ya que algunas rejillas son de 14, otras 8 o 5 columnas y en todas no se ajuntan al monitor.

¿Alguna sugerencia?


([N1] wikan) #5

Ramón lo único que se me ocurre decirte es verificar el tipo de ancho que tengas definido en las columnas.
No se como los tendrás, quizás 1/2 en Máximo disponible y los demás en interactivo.

Intenta jugar con eso a ver que resultado obtienes.


([N4] Ramon Denuc) #6

Hola Manuel,

Efectivamente, tengo combinado en cada rejilla del programa la definición de Interactivo con Máximo disponible, es más la opción Fijo, no la suelo utilizar.

Ya he realizado una entrada a Soporte a ver si me pueden ayudar, pues ahora mismo estoy muy pillado, ya que no puedo distribuir las aplicaciones con este gran fallo.

De todos modos, se os ocurre cualquier cosa, por favor, acepto cualquier sugerencia.

Saludos,


([N3] pacosatu) #7

Hola Ramón.

A mí personalmente no me gusta la gestión que hace Velneo con los anchos de la Rejilla. Es bastante impredecible y no se puede evitar que una columna se estreche hasta casi desaparecer.

Yo probé un código que ya aplicaba en mi anterior entorno orientado a objetos.
La adaptación a Javascript (por supuesto) y a la rejilla de Velneo quedaría así:

  • Crea una conexión de evento en la Rejilla EVT_RESIZE que se dispara con “Redimensionar ventana” y ejecuta un manejador de evento javascript REDIMENSIONAR_JS

var oGrid = theRoot.dataView()
// Suma de los anchos fijos
var nAnchoCols = 0
// Mínimo ancho para evitar columnas muy estrechas
var nMinAncho = 150
// Array con las columnas que deben ser fijas (0) o tener un porcentaje del ancho sobrante
// En este ejemplo: la columna 1 coge el 30% del ancho sobrante y la columna 8 el 70%
var aColsInfo = [0,30,0,0,0,0,0,0,70,0,0,0]
// Nº de columnas a tratar
nCols = aColsInfo.length
// Total del ancho que ocupan las columnas fijas
for (var nc = 0; nc < nCols; nc++) {
	if (aColsInfo[nc]==0) {
		nAnchoCols = nAnchoCols + oGrid.columnWidth(nc)
	}
}
// Ancho sobrante
var nRestoAncho = oGrid.width - nAnchoCols
// Aplicamos el ancho a las columnas variables
for (var nc = 0; nc < nCols; nc++) {
	if (aColsInfo[nc]>0) {
                // Porcentaje del Ancho sobrante
		var nAnchoCol_01 = nRestoAncho * (aColsInfo[nc]/100)
		oGrid.setColumnWidth(nc, nAnchoCol_01 > nMinAncho ? nAnchoCol_01 : nMinAncho)
	}
}

theMainWindow.showMessageStatusBar(
     "Ancho rejilla: " + oGrid.width + "  Ancho Columnas fijas: " + nAnchoCols)

Con este código tienes control total de los anchos de las columnas y determinas un ancho mínimo.
Por supuesto, lo más óptimo es que Velneo aumente a nivel nativo el control que tenemos sobre la Rejilla.

Saludos
Paco Satué