PDA

Ver la Versión Completa : DBChart no me muestra todas las columnas


JoAnCa
05-05-2020, 21:06:30
Hola a todos
Pues necesito mostrar un grafico de barras con los datos de una tabla mysql, que la filtro segun la seleccion de un combobox


Al abrir la aplicacion sin filtrar la tabla, me muestra todas las columnas (no es lo que quiero), pero cuando filtro segun la seleccion, no muestra todas las columnas del resultado del filtro, en cambio si muestra todos los resultados en la leyenda.
Por ejemplo, me muestra 5 elementos en la leyenda y solo 3 columnas, y en otros casos no muestra nada el grafico, aunque si en la leyenda muestra todo lo correcto :confused:


Como se podrá solucionar este problema?

cloayza
05-05-2020, 23:20:51
Estimado JoAnCa

Es posible que los campos asociados a las series del gráfico no tengan valores o sean valores cero. Lo cual provoca que no se visualice la serie.

Le sugiero verificar en una grilla los datos resultantes del filtro aplicado y verificar si tiene valores ceros o nulos.

Saludos cordiales

JoAnCa
06-05-2020, 00:59:50
Estimado JoAnCa

Es posible que los campos asociados a las series del gráfico no tengan valores o sean valores cero. Lo cual provoca que no se visualice la serie.

Le sugiero verificar en una grilla los datos resultantes del filtro aplicado y verificar si tiene valores ceros o nulos.

Saludos cordiales


Pues no es el caso, ya que todos los valores son mayores que cero, ademas de que en otro grafico que hay valor cero, pone la barra sin tamaño, es decir se ve el espacio del color de la barra y le pone la etiqueta con el "0"

cloayza
06-05-2020, 17:15:25
Estimado JoAnCa, puede aportar mas antecedentes, para intentar aportar en la solución de su problema.

Supuse que esta utilizando un DBChart...

De acuerdo a los pocos datos que entrega (Hacer filtro sobre tabla y mostrar barras en gráfico).

Mi ejercicio:

Base de datos: employe.fdb
Tablas:
Employee: Para mostrar antecedentes
Country: Con la que llenaré combobox y haré filtro sobre Employee


procedure TForm5.cboxCountryChange(Sender: TObject);
begin
if cboxCountry.ItemIndex<=0 then
begin
Employee.Filtered:=false;
//Si la linea siguiente no se refresca el gráfico...
DBChart1.RefreshData;
exit;
end;

Employee.Filtered:=false;
Employee.Filter:=Format('JOB_COUNTRY=%s',[QuotedStr(cboxCountry.Text)]);
Employee.Filtered:=true;

//Si la linea siguiente no se refresca el gráfico...

DBChart1.RefreshData;
end;

procedure TForm5.FormCreate(Sender: TObject);
begin
cboxCountry.Items.Clear;
Countrys.Open;
cboxCountry.Items.Add('All Country');
while not Country.Eof do
begin
cboxCountry.Items.Add(Country.FieldByName('COUNTRY').AsString);
Country.Next;
end;
end;


https://mnssimulacion.cl/~cloayza/clubdelphi/dbchar_filter.gif

Saludos cordiales

JoAnCa
07-05-2020, 05:19:35
Supuse que esta utilizando un DBChart...
Pues si, lo que estoy usando es un DBChart, como dice el titulo del post.

De acuerdo a los pocos datos que entrega (Hacer filtro sobre tabla y mostrar barras en gráfico).
Con el resultado del filtro no hay problemas, lo verifico con un datagrid.

Al parecer el problema esta en los parametros de configuracion del dbchart, que no los hago correctamente.
Hice unos cambios y ya me muestra todas las barras.

Pudieras explicarme como configurar correctamente los parámetros?
como se usa el parametro "stack", no me sale como quiero, si le pongo "none" me agrupa las barras en grupos de 2 o 3, y si le pongo "Side All" pone todas las barras como deseo pero en el eje x no pone todos los nombres.

Adjunto imagen del datagrid con los datos que deseo graficar (la columna SumVency AreaRespons)
Tambien adjunto como configure la serie con el datasource, no se si lo hice bien