Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Modificar colores de cada barra de un Tchart cargado desde una BD (https://www.clubdelphi.com/foros/showthread.php?t=56097)

richisaurio 07-05-2008 16:36:04

Modificar colores de cada barra de un Tchart cargado desde una BD
 
Hola a todos un saludo, tengo un problema y no estoy pudiendo resolverlo.
Realizé una aplicación la cual presenta unos reportes en cuadros estadísticos, utilizo QuickReports para esto y el TeeChart para las gráficas, mis serie es por columnas. Los datos que voy a mostrar en estos reportes y en el TeeChart los saco de una Base de Datos.

Necesito que cada columna, dependiendo del valor que saque de la BD, se pinte de un color diferente (Por Ejemplo. Si el valor es entre 0 y 3 que se pinte rojo, si el valor es entre 3,1 y 6 que se pinte verde).

Porfavor, espero me puedan ayudar. Muchas Gracias anticipadamente

coso 07-05-2008 16:49:56

El quickreport tiene un evento onprint, el chart (supongo q estas usando un componente QRChart dentro del formulario) tambien tiene un evento onprint. Es alla donde debes discriminar el color segun su valor. Algo mas o menos asi
if
QRChart1.Chart.SeriesList.Series[0].YValue[0] > 5 then
QRChart1.Chart....Color := clBlue
else
QRChart1.Chart....Color := clRed;

no he encontrado la propiedad del color del rectangulo pero tiene q estar por alli.

coso 07-05-2008 16:51:29

Vaya, acabo de leer y veo q es un TChart lo que usas, independientemente del quickreport. Debes usar entonces el evento onpaint. Recuerda por eso, q si quieres imprimirlo en un quickreport, deberas hacer algo parecido en el evento onprint.

coso 07-05-2008 16:53:53

y mas aun, el tChart tiene un evento especifico onBeforeDrawSeries...

roman 07-05-2008 17:08:41

richisaurio, bienvenido al Club.

He cerrado el otro hilo que abriste en el foro de Impresión. Entiendo que el problema puede prestarse para ambos foros pero nuestra guía de estilo no permite publicar un mismo hilo en varios foros.

// Saludos

richisaurio 07-05-2008 17:21:36

Yo estuve preguntando de la siguiente manera los valores del TeeChart

for i:=1 to Series2.Count do
if preporte.Series3.YValue[i-1] = 1 then

El problema es nose como cambiar los colores, nose que propiedad, no se como cambiar el color es en eso que necesito la ayuda

richisaurio 07-05-2008 17:35:51

Estuve colocando este codigo en un boton que llevaba al reporte

preporte.Series2.ValueColor[4]:=clBLue;

preporte // Es la forma de mi reporte

Una vez que se dibujan las series ya no se pueden cambiar ???
Acabado de hacer correr, colocando en el evento que me indicaste
BeforeDrawSeries y fuciona a la perfeccion

for i:=1 to preporte.Series2.Count do
if preporte.Series2.YValue[i-1] = 1 then
preporte.Series2.ValueColor[i-1]:=clBLue
else
preporte.Series2.ValueColor[i-1]:=clRed;

GRXX


La franja horaria es GMT +2. Ahora son las 05:52:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi