![]() |
Mostrar relación N:N en grid diferenciando los grupos
He tardado un montón en escribir este mensaje porque no sabía qué título ponerle, espero que este sea comprensible.
Gracias de antemano a todos. Tengo una tabla que guarda una relación "N a N" (relaciona facturas externas con facturas internas), esta tiene un índice por el campo "cod_grupo" que puede ser el mismo para un número variable de tuplas, según como sea cada relación concreta. "cod_grupo" es un contador que se crea por concatenación con un identificador de zona de la siguiente forma: <contador numérico>+<promocion> Por ahora todo bien. La cuestión es que tengo que mostrar varios de estos grupos al mismo tiempo en un mismo DBGrid y visualmente es un problema diferenciar qué líneas pertenecen a un grupo y cuales a otro. Había pensado en traducir de algún modo ese "cod_grupo" en algo más visible: un color de celda... Pero no sé cómo hacerlo de forma que no me coincidan tonos similares al coincidir dos "cod_grupo" consecutivos. ¿Funciones Hash para traducir el código? ¿Reparto alternativo de colores según la posición par o impar del grupo en el grid? PD: Creo que se me escapa la solución fácil, esto no puede ser tan complicado. |
Yo uso los componentes DeVExpress, que entre tantas cosas permiten mostrar como vos decis, con sub grillas dentro de otra grilla, estan muy buenos:
http://www.devexpress.com/Products/VCL/ExQuantumGrid/ |
No necesito algo tan complejo como un sub-grid, además ya uso un DBGrid y no puedo cambiarlo por otro tipo de componente, el formulario no es mío, simplemente me ha tocado a mí hacerle la modificación.
|
Lo más fácil, es utilizar 2 colores de forma alternada. Por ejemplo blanco y crema para el fondo. Si quieres resaltar los grupos, blanco y gris. Por supuesto, agrupados por el cod_grupo.
En el evento OnDrawCell, necesitarás una variable que tenga el cod_grupo que se está pintando, si desde el Dataset, es un cod_grupo nuevo, cambias el color, de lo contrario, mantienes el mismo. (Supongo que los datos estarán ordenados por este campo, para ver los registros del mismo cod_grupo agrupados). Saludos |
Sí, estan ordenados por cod_grupo y lo que estoy intentando es pintarlos de diferentes colores, pero al intentar pintarlo alternos me salen cosas raras, debo estar haciendo algo mal.
Lo volveré a revisar. |
| La franja horaria es GMT +2. Ahora son las 14:35:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi