FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
Así que creo que la única opción es la del campo que indique el color o algo así. Pero todavía se aceptan más propuestas... habrá premio al que obtenga el resultado correcto |
#2
|
||||
|
||||
Pues yo no veo otra salida amigo. Ya sea que se lleve una estructura fuera o en el mismo dbgrid con un campo calculado y el uso de técnicas "flags booleanas" es necesario contar con un artilugio para llevar ese conteo y poder determinar con que color pintar cada registro.
Saludos, |
#3
|
||||
|
||||
Mejorando código....
Es un gasto de memoria, es cierto. Pero la solución en el código es una simplificación de la solución primera propuesta por delphius. Aún no funciona? Dinos que esto ya lo tomamos como reto EDITO: Aclaro que GrupoImpar es una variable global privada Última edición por Chris fecha: 06-01-2011 a las 23:33:58. |
#4
|
||||
|
||||
Hola de nuevo.
No quiero ser pesado, pero ya lo comenté en un post anterior. Se hace un procedimiento almacenado y se llama al mismo poniendo la where que se quiera, ya que puede ser invocado como una tabla o query. esta where puede ser montada 'al vuelo'. Llamadas
Espero que sea de utilidad. Saludos Aupa Casi, no desfallezcas ahora !!
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#5
|
||||
|
||||
Cita:
Prueba y evalúa las opciones. Si tienes problemas nos avisas y le caemos a madrazos a tu jefe y/o cliente por ese requerimiento Si te funciona, ya sabes... me envías un jamón (la pata entera, por supuesto) por correo Saludos, |
#6
|
||||
|
||||
Cita:
Creo que se está llegando a la conclusión de que esa parte es la que no funciona en este sistema, no se puede comparar con el valor del "último valor" porque puede ser cualquier registro, por ejemplo cuando ha llegado al último registro y ahora se posiciona en el primero, los colores pueden ser iguales, o no, depende de si el número de "asientos" es par o impar. O sea, pintarlo, lo pinta perfecto, tanto ese método como todos los demás que se han sugerido, pero en cuanto empiezas a moverte por el grid arriba y abajo, con teclas o con el ratón, yendo al primero o al último con ctrl-inicio y ctrl-fin, página arriba y abajo, etc. siempre acaba descontrolando los colores por lo dicho anteriormente, el "anterior" no tiene por qué ser el que está "antes" en el dbgrid. Entonces las únicas soluciones posibles son las que sacan el color del propio registro, independientemente de lo que tengan los otros registros anteriores o posteriores. Ya sea mediante procedimiento almacenado, tabla en memoria, etc. Bueno, esto que comento es lo que me parece según lo visto, puedo estar totalmente equivocado y ahora alguno expone un código que consigue el resultado esperado. |
#7
|
||||
|
||||
Cita:
|
#8
|
||||||
|
||||||
Cita:
Estamos presentando alternativas, no sabíamos que te tenía que caer bien a vos. Luego venía el debate de sus pros y contras. Cita:
Tu que eres el mega chingón desarrollador, y tanto se ve que sabes deberías estar bien al tanto que en ocasiones no existe el blanco o el negro y debe encontrarse una solución en términos grises. Cita:
Algunas reglas están para romperse, otras no.. y otras tantas a medias. Para alguien que pretende decir que no debería tomarse universalmente me sorprende que intentes convencer que la solución pase únicamente por el lado del cliente. A ver chiquito... estamos debatiendo pero parece que a vos no te agrada que otros presentemos otras vías posibles de encararlo. Allí si tu tienes tu estilo, al menos otros estamos buscando darles giros al asunto y no quedarnos monotemáticos. Cita:
Tu pretendes tildar a Casi y a los demás como incompetente. Evita esas indirectas molestas... aqui ninguno viene con aires de traer la superioridad... Y si no has sabido interpretar algunas cosas que se han dicho con humor... bueno, eso ya es otra cosa. Cita:
Sabes que existe algo llamado KISS... a lo siento... tu prefieres seguir rompiéndote la cabeza y no intentar darle un giro a tus ideas. Bien por ti, si quieres seguir complicándote. Cita:
Hay más que mirar, y no necesariamente habrá una perdida considerable de perfomance. Y allí si digo... punto final. Si, sigamos con el hilo... que no tiene sentido discutir, menos con alguien que pretende ponerle punto final a un debate de ideas. Te aviso además, que no fui el iniciador y motivador principal de la solución por el lado de la base de datos... fue román, si tienes algo que decir y objetar crítica a él. Yo solamente seguí su planteo y propuse una ALTERNATIVA. REPITO Y SOSTENGO HASTA EL CANSANCIO... HABLAMOS DE ALTERNATIVAS.. NO DE QUIEN SE LLEVA EL PREMIO A LA RAZÓN. La verdadera razón se la doy a Dios. Saludos Cris.... Saludos a los demás. |
#9
|
||||
|
||||
Demonios, qué caro se está poniendo el jamón
Que no cunda el pánico. Independientemente de la solución que se adopte, hay que tener en cuenta que los partícipes en este hilo no somos aprendices, y la verdad, hemos tardado en encontrar la solución; desde Casimiro que lo abrió al último participante. Y sí, parecía cosa de niños, pero realmente no era así. Una vez tengamos una sóla o infinidad de soluciones, dejémosle a quien tiene que resolver el problema que lo resuelva como mejor crea conveniente, ya que de sus sistema, de sus usuarios y de sus problemáticas es él quien tiene el máximo de información. La solución planteada desde la parte del servidor, puede ser tan buena como otra cualquiera, dependerá de la cantidad de veces que ese proceso se lanza, del equilibrio entre coste-beneficio, de lo pijo que sea el usuario, ... como bien comentabais antes. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#10
|
||||||||
|
||||||||
No pensaba en contestarte xq era desvirtuar el hilo. Pero has sido demaciado tosco y necesito contestar tus desagradables palabras.
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Ya sinceramente..... NEEEEXT!!! |
#11
|
||||
|
||||
Cita:
Por otra parte, la opción de un campo calculado que determina el coor con el que debe pintarse, pues me suena extraña. El valor de un campo calculado, normalmente, debe determinarse en términos de otros valores en el mismo registro, y si podemos usar valores en el mismo registro para saber de qué color hay que pintar, entonces no necesitamos el campo calculado sino simplemente hacer el cálculo en el evento DrawColumnCell. // Saludos |
#12
|
||||
|
||||
Entonces, ¿qué sugieres?
Que llevo tres días con esta tontería y no termina de ir bien, algo tan "simple" :S |
#13
|
||||
|
||||
No se que dirán ustedes pero creo que acabamos de encontrar el nuevo reto delphi
Yo digo que el gran maestros de maestros de centésimo dan Román nos ilustre Yo no tener más neuronas. Saludos, |
#14
|
||||
|
||||
Ja, ja. Yo no dije que tuviera la solución, simplemente comenté mi renuencia a creer en las ya existentes
Yo opino que el switch no funciona porque el pintado de celdas no necesariamente es secuencial. Sin embargo, esta técnica del switch podría usarse desde la consulta sql. Por ejemplo, en MySQL puedo hacer algo parecido a esto:
La columna "colorear" alterna entre 1 y 0 según cambia el valor del campo asiento, de manera que la condición en el evento DrawColumnCell se reduce a:
Supongo que en Firebird también existen las variables de usuario así que podría hacerse algo similar. // Saludos |
#15
|
||||
|
||||
¿Y que me dices de mi propuesta? Llevar una estructura que registre la distribución de pintado.
Yo para ahorrar espacio decía algo como: HastaRegistro - Color 1 - Blanco 6 - Negro 8 - Blanco ... Alterando esa idea se puede concebir una estructura de igual tamaño que la cantidad de registros: RegistroNro - Color 1 - Blanco 2 - Negro 3 - Negro ... 6 - Negro 7 - Blanco 8 - Blanco La idea es armar esta estructura analizando los registros. Cuando tenemos esta estructura ya podemos pintar el DBGrid, fila a fila en base a la evaluación del RecNo y comparandolo con RegistroNro de la estructura. Si el evento DrawColumnCell se levanta a sus ganas, entonces forzemosle a decir, mira... tu correspondes al registro x, por tanto tu color es z. Me dirán que es un desperdicio de memoria pero no veo otra manera. Saludos, |
#16
|
||||
|
||||
Sí, la que yo he puesto
Es que con tu idea hay que traerse todos los registros al cliente de una sóla vez. // Saludos |
#17
|
||||
|
||||
Cita:
if (@asiento <> asiento, @colorear:=1-@colorear, @colorear) as colorear, @asiento:=asiento if @asiento<>asiento then @colorear = 1-@colorear else @asiento = @colorear; @asiento = asiento; Supongo que @loquesea quiere decir que es una variable. |
#18
|
||||
|
||||
Cita:
Casimiro, una pregunta, porque necesitas hacerlo de esta forma? Saludos
__________________
Aleca |
#19
|
||||
|
||||
Quizá es muy simple mi respuesta pero yo diría que para poder distinguir fácilmente los grupos
// Saludos |
#20
|
||||
|
||||
Pues sí, para separar los distintos asientos:
Dibujar es fácil, funciona perfecto con todos los ejemplos que han puesto todos los compañeros, el problema viene cuando te mueves por el grid arriba y abajo, llegas al final y al principio, etc. El ejemplo de Román no he podido probarlo porque desconozco el tema de las variables de usuario en firebird, estoy buscando información al respecto. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Alternar dos colores en las lineas de un DBGrid. | jealousy | OOP | 4 | 07-05-2014 15:45:23 |
colores en un dbgrid | frf_84 | Gráficos | 2 | 07-12-2004 12:14:57 |
dbgrid con colores | Giniromero | Conexión con bases de datos | 7 | 08-07-2004 16:26:29 |
dbgrid en colores | sebas | Conexión con bases de datos | 2 | 09-07-2003 09:16:14 |
Colores en una DBGrid | REDCOM | Varios | 2 | 26-05-2003 20:42:58 |
|