 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
shackletta Lt JG

Registrado: 01 Dic 2004Mensajes: 68
|
Publicado: Mar 06 Sep, 2005 11:44 am Asunto: Ayuda con TChart o DBChart |
|
|
Buenos días, tengo una duda, estoy intentando hacer unas gráficas con unos resultados de una consulta que hago sobre una tabla de Access. La gráfica puede tener diferentes valores en los ejes dependiendo de los parámetros de la consulta que elija el usuario. La conexión a la BD la realizo de forma dinámica, por lo que no puedo asignar un datasource a las series de en tiempo de diseño. Quiero hacerlo en tiempo de ejecución, sé cómo pasarle los valores leídos de la BD pero no sé cómo asignar valores a los ejes. A ver si consigo explicarme mejor, los valores que obtengo (de momento) son una cantidad por un año.
| Código: |
Personas Año
1589 1996
3451 1997
5581 1998
2000 1999
|
La idea es que en la gráfica se muestren en el eje X los años y los puntos de la gráfica sean las cantidades correspondientes, pero no sé como pasarle los años al eje X
Lo que hago para meter los datos de las cantidades en una serie es:
| Código: |
int i = 0;
int datos = 0;
while (!Data->ADOQuery8->Eof)
{
Cantidad[i] = Data->ADOQuery8->FieldByName("Cantidad")->AsFloat;
i++;
datos++;
Data->ADOQuery8->Next();
}
DBChart1->AddSeries(&TBarSeries(this));
DBChart1->Series[0]->Active = true;
for (i=0; i < datos; i++)
DBChart1->Series[0]->Add(Cantidad[i],"",clBlue);
|
Y veo que tanto DBChart como TChart tienen unas propiedades llamadas
RightAxis y LeftAxis, y supongo que debe ser ahí donde debo introducir los años, pero no sé como hacerlo. Alguien puede ayudarme??, la verdad es que aunque no quede bien decirlo es urgente, mañana tengo que haberlo conseguido así que agradecería cualquier tipo de información o ayuda. He consultado el manual que hay en la página de grupo albor pero no he encontrado como hacer esto en tiempo de ejecución.
Muchas gracias por vuestra colaboración. |
|
| Volver arriba |
|
 |
shackletta Lt JG

Registrado: 01 Dic 2004Mensajes: 68
|
Publicado: Mie 07 Sep, 2005 6:49 pm Asunto: |
|
|
Vale, como siempre la respuesta a mi pregunta no era tan complicada. Simplemente tenía que leer los años ( en este caso he leído los paises) al mismo tiempo que las cantidades correspondientes, y luego lo paso como:
| Código: |
while (!Data->ADOQuery8->Eof)
{
Cantidad[i] = Data->ADOQuery8->FieldByName("Cantidad")->AsFloat;
Paises[i] = Data->ADOQuery8->FieldByName("Pais")->AsString;
datos++;
Data->ADOQuery8->Next();
}
DBChart1->Title->Text->Add("Titulo de la grafica");
DBChart1->Series[0]->Active = true;
for (i=0; i < datos; i++)
DBChart1->Series[0]->Add(Cantidad[i],Paises[i]);
|
Como podeis ver, mi pregunta anterior se refería a poner años en el eje X, pero luego me pidieron que pusiera los paises, aunque se hace de la misma forma. También en el código de la pregunta anterior puse :
| Código: |
DBChart1->AddSeries(&TBarSeries(this));
|
Bueno, pues esto no hace falta a no ser que quiera añadir más series, ya que por defecto el componente TDBChart tiene una serie (al igual que sucede en excel).
Espero que haya quedado un poco más claro, se hace lo que se puede.
Un saludo. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|