PDA

Ver la Versión Completa : ¿Cómo crear un grafico TChart en base a un ADOQuery?


ciudad54
12-02-2016, 04:29:29
Tengo una consulta ADOQuery de una tabla de Pacientes, dicha consulta me muestra los registros del campo ARS (Aseguradora de Riesgos de Salud) y muestra su descripcion, y la suma de dichos registros. La idea es crear un gráfico, ejemplo:

SELECT a.detalle, COUNT(*) AS TOTALARS
FROM GES_PACIENTE p
INNER JOIN GES_ARS a ON (p.ars = a.ars)
GROUP BY a.detalle
ORDER BY a.detalle

Ejemplo
ARS HUMANO 4000
ARS SENASA 3000
ARS PALIC 600

Como puedo enlazar mi ADOQuery con el TChart?

Gracias!

ecfisa
12-02-2016, 23:38:57
Hola ciudad54.

Usando un TChart vas a tener que recorrer el resultado de tu consulta. Un ejemplo al vuelo:

procedure MakeChart(aDataSet: TDataSet; Chart: TChart);
var
bs: TBarSeries;
begin
aDataSet.First;
bs := TBarSeries.Create(Chart);
while not aDataSet.Eof do
begin
bs.Add(aDataSet.FieldByName('TOTALARS').AsInteger,
aDataSet.FieldByName('DETALLE').AsString, clRed);
Chart.AddSeries(bs);
aDataSet.Next;
end;
end;

// Llamada:
...
begin
MakeChart(IBQuery1, Chart1);
...


http://s23.postimg.org/7tq8zy4tn/ciudad54.png

Saludos :)

ciudad54
13-02-2016, 00:43:01
Gracias, excelente tu aporte. También encontré una forma muy práctica:


Creo una Serie en el TChart
Doble clic a la Serie
Seleccione el tab DataSource
Seleccione en la lista a "Crosstab"
En Dataset, elijo el DataSource, ADOQuery, cualquier componente que contenga sus datos


Previamente se debe crear (en mi caso) un Query con la agrupación y conteo de los datos que solicitaba. En este curso sobre SQL, Lección 7 pude entender como hacer mi consulta: deletesql.com/viewforum.php?f=5&sid=2654ace32886be4f7e79d8eb288d58fc

Espero sea también de aporte.