Estoy buscando como modificar una consulta y los campos de la consulta emplearlos para generar graficos. El problema lo he visto comentado por muchos foros pero no veo la solucion en ninguno. Ademas os dejo todo el codigo de la aplicacion en pruebas donde podeis ver el problema.
Cuando ejecutamos un boton aparece el grafico asociado pero si pulsamos otro boton entonces ERROR.
Código Delphi
[-]
procedure TForm1.Haz(n : Integer);
begin
DBChart1.SeriesList.Clear;
case n of
1:
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT Provincia, Count(*) AS Amigos ');
Query1.SQL.Add('FROM Provincias AS P INNER JOIN Amigos A ON P.id=A.Provincia ');
Query1.SQL.Add('GROUP BY P.provincia;');
Query1.Active := True;
DBChart1.Title.Text.Clear;
DBChart1.Title.Text.Add('Amigos por Provincias');
ConfigSerie(1,0,1);
end;
2:
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT Provincia, Count(*) AS Clientes ');
Query1.SQL.Add('FROM Provincias AS P INNER JOIN Clientes C ON P.id=C.Provincia ');
Query1.SQL.Add('GROUP BY P.provincia;');
Query1.Active := True;
DBChart1.Title.Text.Clear;
DBChart1.Title.Text.Add('Clientes Por Provincias');
ConfigSerie(1,1,2);
end;
end;
DBChart1.BringToFront;
DBChart1.Enabled := True;
DBChart1.Visible := True;
end;
procedure TForm1.ConfigSerie(num: Integer; c1: Integer; c2:Integer);
begin
series[num] := TBarSeries.Create(DBChart1);
series[num].ParentChart := DBChart1;
DBChart1.AddSeries(series[num]);
with Series[num] do
begin
Marks.Style:= smsValue;
DataSource := Query1;
XLabelsSource := Query1.FieldList.Fields[c1].DisplayName;;
XValues.ValueSource := '';
YValues.ValueSource := Query1.FieldList.Fields[c2].DisplayName;
Active:=True;
end;
DBChart1.CheckDatasource(series[num]);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Haz(1);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Haz(2);
end;
Como siempre muchas gracias a todos.