La idea de cómo hacerlo se me ha ocurrido en la cama esta noche y ha resultado buena: No es un Gridview, son dos coordinados.
El primero contiene las columnas que se hayan fijado, y no es visible si no hay columnas que fijar.
El segundo es un gridview normal al que se le ocultan las columnas que se dan por fijadas para no duplicarlas.
El control lo he hecho basado en un Result. Es decir, haces una consulta a una BD y le pasas el result en su propiedad Result.
Si alguien quiere algo más flexible, no es difícil de implementar para que acepte un array de dos dimensiones, un array de colecciones, un fichero .csv, etc.
El aspecto, una vez fijado un par de columnas es este:
Vale, vale, el nombre no es muy afortunado... más bien da ganas de vomitar pero si a alguien se le ocurre un nombre mejor que indique que "hereda de Gridview (gv) y Fija columnas (column fixer), que me lo diga y lo cambio encantado.
Para incorporarlo en vuestros proyectos podéis hacer dos cosas:
A.- Copiar la carpeta .../src/gvColumnFixer del proyecto adjunto a este mensaje en la carpeta ./src de vuestro proyecto y el archivo .hidden/control/gvcolumnfixer.png del proyecto en la misma carpeta de vuestro proyecto (si no existe .hidden/control la creáis).
B.- Crear el paquete de instalación con el proyecto adjunto e instalarlo en vuestro ordenador. A partir de ahí lo tendréis disponible como un componente más de Gambas.
El formulario de prueba que hay en éste proyecto crea una pequeña base de datos en el home de vuestro usuario y la borra al salir.
Espero que os sea útil
Saludos
Post Data:
Para añadir algo más de flexibilidad al invento, le he puesto dos referencias a los dos griviews y un evento AfterData(row, column) que se levanta después de procesado el evento data. Con eso se puede manipular cada celda ya rellenada de cada uno de los dos gridviews como se quiera.
Así, añadiendo éste código al formularioi Test
Public Sub gvColumnFixer1_afterData(row As Integer, column As Integer)
gvColumnFixer1.GVScrolled[row, column].Font.Bold = True 'ponemos en negrita el gridview con scroll
If Not gvColumnFixer1.GVScrolled[row, column].text Then gvColumnFixer1.GVScrolled[row, column].richtext = "NULO"' Ponemos la cadena NULO si el campo está vacío
If gvColumnFixer1.FixedColumns.Count > 0 Then
gvColumnFixer1.GVFixed[row, 0].Foreground = Color.red 'Si es un campo fijo lo escribimos en rojo
Endif
End
gvColumnFixer1.GVScrolled[row, column].Font.Bold = True 'ponemos en negrita el gridview con scroll
If Not gvColumnFixer1.GVScrolled[row, column].text Then gvColumnFixer1.GVScrolled[row, column].richtext = "NULO"' Ponemos la cadena NULO si el campo está vacío
If gvColumnFixer1.FixedColumns.Count > 0 Then
gvColumnFixer1.GVFixed[row, 0].Foreground = Color.red 'Si es un campo fijo lo escribimos en rojo
Endif
End
Queda así:
Está chulo ¿no?
gvColumnFixer-0.0.5.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | gvColumnFixer-0.0.5.tar.gz | |
Tamaño: | 22.73 KB | |
Descargado: | 38 veces |
gvColumnFixer-0.0.5.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | gvColumnFixer-0.0.5.tar.gz | |
Tamaño: | 22.73 KB | |
Descargado: | 38 veces |
gvColumnFixer-0.0.5.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | gvColumnFixer-0.0.5.tar.gz | |
Tamaño: | 22.73 KB | |
Descargado: | 38 veces |