Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
Agregar campo a un DBChart

Hola amigos

Tengo un DBChart al que le asigno una consulta que tengo hecha en access, el problema es que uno de los campos que me devuelve la consulta el DBChart no lo reconoce. La consulta devuelve 2 campos uno de tipo texto y un valor, el valor sera el que se graficara y el campo de tipo texto sera el que ira en el eje X asociado al valor, pero como dije antes cuando intento asignar los valores de los campos a la serie creada en el DBChart, esta solo me muestra el campo de tipo numerico y no el de tipo texto, ni siquiera reconoce el campo para colocarlo como XlabelsSource. Tambien he intentado asignarle el datasource y los campos en tiempo de ejecucion, pero como resultado obtengo solo un registro graficado, habiendo varios registros generados por la consulta. Ejem:

Código Delphi [-]
Rendimiento.Series[0].DataSource:=DataModule.DataRendimiento;
Rendimiento.Series[0].YValues.ValueSource := 'PorcentajeAvanceEmpresa';
Rendimiento.Series[0]. XLabelsSource:='NombreEmpresa';
Rendimiento.Repaint;

Saludos.
Responder Con Cita
  #2  
Antiguo 12-12-2007
iga iga is offline
Miembro
 
Registrado: dic 2007
Posts: 18
Poder: 0
iga Va por buen camino
Exclamation DBChart en tiempo de ejecucion

Hola, estoy intentando utilizar un DBChart con un TDataSource y TOraQuery pero necesito rellenar en tiempo de ejecución. Es decir, el DataSource y el OraQuery son definidos en ejecución:

with OraQuery2 do
try
Close;
SQL.Text := 'SELECT * FROM LINEA_PEDIDO';
Open;
DataSource2.DataSet := OraQuery2;
DBGrid2.DataSource := DataSource2;

finally;
ShowMessage('ok lineas de pedido!');
end;

Todo ello me funciona, es decir veo los datos en el DBGrid. Pero ahora como defino las propiedades del DBChart?

Por ejemplo el título ya lo he conseguido--> DBChart2.Title.Text.CommaText:='Lineas de pedidos';
Pero ahora necesito definir:
-las series:
-definir el tipo de serie:
-definir que columna va a ir en el eje x:
-definir que columna va a ir en el eje y:
-definir que va a ir en el label:

¿Alguien me puede ayudar diciendome cual es el códido?
¿Conoceis algún tutorial o algo parecido para DBChart? He intentado buscar y a su vez, he estado leyendo la ayuda de delphi, pero la verdad que no me ha servido demasiado.

Muchar gracias.
Responder Con Cita
  #3  
Antiguo 12-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
el TDBChart tiene un asistente (botón derecho sobre el componente).

Entiendo que quieres hacerlo en tiempo de ejecución, asignando dinámicamente sus propiedades, pero el asistente te dará idea de las propiedades que debes modificar y como se usan.

Quizás solo necesites configurarlo en tiempo de diseño. Nu sé .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 13-12-2007
iga iga is offline
Miembro
 
Registrado: dic 2007
Posts: 18
Poder: 0
iga Va por buen camino
Gracias, pero no encuentro el asistente!

Gracias por responder, pienso que me será muy útil tu respuesta.

Pero, no encuentro el asistente, ago click con el boton derecho sobre el DBChart, pero no encuentro ningún asistente. Yo utilizo la versión Delphi7.

¡Gracias!
Responder Con Cita
  #5  
Antiguo 13-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Botón derecho "Edit Chart", verás Dos pestañas Chart y Series, Dentro de Chart tienes otra Subpestaña "Series" añade una serie.

Ahora volvemos a la pestaña Principal Series (la de arriba del todo), vas a la subpestaña DataSource, en el Combobox de esta pestaña eliges "Dataset" y aparece abajo los detalles, En el combobox "Dataset" eliges el tuyo.

Todo esto traducido a código delphi, para hacerlo en tiempo de ejecución sería:
Código Delphi [-]
var una : THorizBarSeries;
begin
 una := THorizBarSeries.Create(dbchart1); // creo una serie de barras horizontales.
  dbchart1.AddSeries(una); // la añado al DBChart
  dbchart1.Series[0].Datasource := Datasource1; // asigno su datasource.

Más o menos esta es la forma, ahora queda continuar. Yo no lo he usado nunca.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 14-12-2007
iga iga is offline
Miembro
 
Registrado: dic 2007
Posts: 18
Poder: 0
iga Va por buen camino
Question ¿Hay que activar algo para que los datos aparezcan en la dbChart?

He hecho lo indicado y parece que funciona (no da ningún error), lo único que no me aparecen los datos en la gráfica ( compruebo que el DataSource tiene datos!)
¿Sabes si después de lo dicho hay que activar algo para que los datos aparezcan en la dbChart? ej. _______.active o _____.show o algo parecido?
Responder Con Cita
  #7  
Antiguo 14-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Yo he llegado nada más que a añadir el datasource, en tiempo de diseño, cuando haces eso mismo, te aparece un par de combos donde tienes que definir los datos del eje XY y ejes ZY (creo recordar), faltaría eso para ver los datos en pantalla.

No lo puse en el ejemplo porque creo que hay 2 formas de hacerlo:
- Una definir los valores de los ejes uno a uno
- Definir una columna de la tabla como eje XY y otra como el otro eje.

Ahora no tengo tiempo, lo siento. En cuanto pueda lo miro.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 14-12-2007
iga iga is offline
Miembro
 
Registrado: dic 2007
Posts: 18
Poder: 0
iga Va por buen camino
Thumbs up ¡ya lo intentaré!

ok, esta bien.
¡Ya lo intentaré!

¡Muchas gracias de antemano!
Responder Con Cita
  #9  
Antiguo 14-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
vale, ahora si salen los datos, pero te aviso, yo no sé que representa jajaja.

Código Delphi [-]
var una:ThorizBarSeries;
begin
  una := THorizBarSeries.Create(dbchart1);
dbchart1.AddSeries(una);


// son campos de la base de datos DBDEMOS de ejemplos.

una.Datasource := tbl1; // dbdemos, tabla Customer.db

una.XLabels.ValueSource := 'CustNo';
una.YValues.ValueSource := 'invoiceDate';
una.YValues.DAtetime := true; // invoiceDate es una fecha, hay que decirselo al dbchart. 
// no sé si es necesario, pero por si acaso, lo añado.
tbl1.Open; // y listo, se ven los gráficos

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #10  
Antiguo 17-12-2007
iga iga is offline
Miembro
 
Registrado: dic 2007
Posts: 18
Poder: 0
iga Va por buen camino
Question

Hola Lepe,¡ya consigo visualizar los datos! Pero tengo un pequeño problema, haber si me entiendes:

La tabla que intento visualizar en el DBChart consta de 8 registros y 2 columnas. El DBChart cargo directamente del DataSource, pero en vez de aparecer en el gráfico todos los datos (columnas) a la vez , me aparece uno a uno. Es decir, en la gráfica solamente me aparece UNA columna (correspondiente al primer registro).

A su vez, los datos de la tabla los visualizo en un DBGrid (los 8 registros), y es ahí cuando clico en el segundo registro y de ese modo me aparecen los datos correspondientes a ese registro en la gráfica. Es decir, que debo de clicar en el registro deseado para que me visualize en el gráfico. Porque solo visualiza al mismo tiempo los datos correspondientes a un registro.

Yo necesito que me aparezcan todos los registros (8 registros-8 columnas en la gráfica).

Gracias.
Responder Con Cita
  #11  
Antiguo 19-12-2007
iga iga is offline
Miembro
 
Registrado: dic 2007
Posts: 18
Poder: 0
iga Va por buen camino
Question

Hola, no se si se ha entendido mi problema, pero he intentado en diferentes forms y siempre me pasa lo mismo. Yo necesito que me aparezcan todos los datos en la gráfica, y no solamente las de un registro. Yo quiero una columna en el gráfico por cada registro de la tabla, y no solamente una columna.

No encuentro respuesta!
Responder Con Cita
  #12  
Antiguo 20-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
He estado fuera unos días, por eso no he contestado.

Me pongo a mirarlo, como te dije, nunca usé el dbchart, veré si consigo lo que quieres.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #13  
Antiguo 21-12-2007
iga iga is offline
Miembro
 
Registrado: dic 2007
Posts: 18
Poder: 0
iga Va por buen camino
Thumbs up

ok, te lo agradezco mucho!

Gracias.
Responder Con Cita
  #14  
Antiguo 21-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Te aconsejo te olvides de momento el hacerlo en tiempo de ejecución, es más fácil hacerlo en tiempo de diseño.

Acabo de ver lo que dices y no lo entiendo. Yo he puesto un DBGrid, para ver los registros y asigno los valores del eje "X" y del "Bar" (en tiempo de diseño, pestaña Series -> Datasource).

Uso la tabla employee de las demos de delphi (que tú también la debes tener):
Al eje X he puesto el EmpNo (nº de empleado)
Al eje Y le he asignado el campo Salary.


al abrir la tabla, veo cada empleado en el eje X y en el eje Y veo su salario. Veo todos los registros en el DBChart.

Una cosa, si añades una serie en tiempo de diseño, y después en ejecución creas otra, verás los datos mezclados. Asegúrate de hacerlo solo en diseño o solo en ejecución

Adjunto el proyecto, solo con ejecutarlo debe funcionar.

Si ahora en tiempo de diseño, eliminas la serie que existe, quitas los comentarios a las líneas de código y ejecutas, hará lo mismo pero en tiempo de ejecución.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip mdi.zip (1,8 KB, 55 visitas)
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #15  
Antiguo 26-12-2007
iga iga is offline
Miembro
 
Registrado: dic 2007
Posts: 18
Poder: 0
iga Va por buen camino
Question

Te agradezco que me lo hayas respondido pero obligatoriamente tengo que elegir el datasource en tiempo de ejecución. Esto ya lo he consegido,se visualizan los datos adecuados pero solamente me aparece una columna en la gráfica (referente al PRIMER registro de la tabla) y yo quiero que me aparezcan todas las columnas (o sea los datos de todos los registros).

¿Me he explicau mejor?
Responder Con Cita
  #16  
Antiguo 27-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Si, te has explicado, pero si has visto mi ejemplo, se obtienen todas las barras (una por cada registro).

¿estas filtrando la tabla en algún momento?
¿has intentado usar una consulta (TQuery) independiente para el TDBChart?

Te puedo dar pistas como esas, pero realmente no sé por qué te muestra una sola barra.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #17  
Antiguo 07-01-2008
iga iga is offline
Miembro
 
Registrado: dic 2007
Posts: 18
Poder: 0
iga Va por buen camino
Thumbs up

No se lo que hago mal, pero no consigo visualizar todas las barras a la vez!

Muchas gracias, ¡seguiré intentándolo!

iga
Responder Con Cita
  #18  
Antiguo 14-03-2008
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Hola iga me gustaria saber si ya ressolviste tu problema yo he usado el tdbchart y me funciona de cien de no haberlo hecho dejame saberlo para echarte la mano
Responder Con Cita
  #19  
Antiguo 24-04-2008
Punzo Punzo is offline
Miembro
 
Registrado: abr 2006
Posts: 96
Poder: 18
Punzo Va por buen camino
Ayuda con TDBChart

Yo tengo mas o menos el mismo problema; tengo un ibquery y quiero asignar los campos a las series; selecciono en el dbchart datasorce, single record, asigno el datasource pero no me aparecen los campos, los campos ya estan en el dataset pero no aparecen en el dbchart; en el ibquery tengo unas sumatorias. Ayuda por favor
Responder Con Cita
  #20  
Antiguo 24-04-2008
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
ok primeramnete que tip ode grafica es la que estas usando la verdad yo no he usado mucho ese componente pero lo hice que funcionara de cien con una grafica de gannt? es esa el tipo de grafica que usas?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:06:15.


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
Copyright 1996-2007 Club Delphi