Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Visualizar datos de una base de datos con TDBChart. (https://www.clubdelphi.com/foros/showthread.php?t=89372)

Yugo 10-11-2015 19:53:52

Visualizar datos de una base de datos con TDBChart.
 
Hola!! a ver si podeis ayudarme... a partir de una base de datos simple (paradox) de 55 campos, debo visualizar en un TDBChart los datos de sólo 13 de esos campos, cada vez que me voy moviendo por el TDBNavigator pues esos valores irían cambiando claro. Pero no doy con la tecla, porque puedo hacer que en el eje Y se vean dichos valores, sin embargo, en el eje X me interesa que aparezca un identificativo que a mi me interesa para cada uno de los 13 campos. A modo más aclaratorio...

eje Y (Valores del campo escogido por mi)
|
|
|
|
|
|
|
|________________________________________________ eje X (Me salen solo en campo concreto de varios registros, 13 en este caso)
nombre nombre .....
campo1 campo 2 .....

Y yo lo que quiero que aparezca en el eje X no son los nombres de los 13 campos de un mismo registro, sino un identificativo que
se lo asignaria mediante un bucle for por ejemplo.

EDITO para decir que la idea es tomar los registros de una tabla abierta en el Form1 para representar esos valores en otro, Form2.

Gracias por vuestro tiempo y un saludo!!

Yugo 11-11-2015 01:22:28

Solucionado!! a medias... en lugar de emplear un componente TDBChart, usé un TChart colocado en el mismo formulario que la base de datos de la que obtiene los datos.


Código:

const int NUM_CELDAS= 13;
const String CELDA[NUM_CELDAS] = {"Servicio","NC1","NC2","NC3",
                        "NC4","NC5","NC6","NC7","NC8",
                        "NC9","NC10","NC11","NC12"};
           
//Comprobar si hay una serie graficada
  if (Chart1->SeriesCount() > 0)
  {
    //Si hay una serie graficada, se elimina
    //para volver a graficar otra nueva.
    Chart1->RemoveAllSeries();
  }

  // Añadir una TBarSeries al TChart1
  TBarSeries *RxLevFull = new TBarSeries(this);
  RxLevFull->ParentChart = Chart1;

  //Cambiar el título del Chart:
  Chart1->Title->Text->Text = "Titulo";
  //Limpiamos cualquier Style configurado previamente:
  Chart1->Title->Font->Style = TFontStyles();
  Chart1->Title->Font->Style = TFontStyles()<< fsBold;

  //Para cambiar la etiqueta del eje X:
  Chart1->BottomAxis->Title->Caption = "[Celda]";
  //Limpiamos cualquier Style que previamente haya sido configurado:
  Chart1->Title->Font->Style = TFontStyles();
  Chart1->BottomAxis->Title->Font->Style = TFontStyles()<< fsBold;

  //Para cambiar la etiqueta del eje Y:
  Chart1->LeftAxis->Title->Caption = "[Nivel]";
  //Limpiamos cualquier Style configurado previamente:
  Chart1->Title->Font->Style = TFontStyles();
  Chart1->LeftAxis->Title->Font->Style = TFontStyles()<< fsBold;

  //Para cambiar el valor de cada punto de las barras:
  RxLevFull->Marks->Style = smsValue;

  Chart1->LeftAxis->AxisValuesFormat = "#,##0.00";

  //1º punto de la serie con el valor 'CAMPO1'):
  RxLevFull->Add(Table1->FieldValues["CAMPO1"],CELDA[0],clRed);
  //Los sisguientes puntos de la serie(2º al 13º) para los valores 'CAMPO2', 'CAMPO3', 'CAMPO4',....,'CAMPO13'):
  String ncelda, dato;
  double valorMod = 0;
  for(int i=1; i<NUM_CELDAS; i++)
  {
    ncelda = "NC" + IntToStr(i) + "REGISTRADO";
    dato = Table1->FieldValues[ncelda];
    RxLevFull->Add(valorMod,CELDA[i],clRed);
  }



La franja horaria es GMT +2. Ahora son las 03:56:38.

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