Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   DBGrid en tiempo de ejecución (https://www.clubdelphi.com/foros/showthread.php?t=51314)

iga 12-12-2007 10:42:31

DBGrid en tiempo de ejecución
 
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.

iga

g_rojo 12-12-2007 18:07:58

Hola iga

Tu pregunta es la misma que yo hiciera en otro momento, y la línea de código para cambiar el título de un DBChart me resultaría útil, porque yo mismo me preguntaba acerca de esto mismo.

En mi caso, no encontré las propiedades o métodos a partir de los cuales se acceden a las "partes" de un DBChart : título de gráfico, títulos de series, de ejes, datos numéricos para las series, etc. Pero encontre otras alternativas que me ayudaron a resolver mi caso:

EN primer lugar, tengo Borland Delphi 5.0 enterprise
En segundo lugar, uso un TQRChart dentro de un TQuickRep (objeto informe)

La asignacion de las series de datos para graficar varias líneas en un sistema de coordenadas X-Y, la he hecho en tiempo de diseño; no he encontrado aún algún método o propiedad que me permita hacerlo durante tiempo de ejecución. Y HE COMPROBADO que en tiempo de diseño se pueden usar solamente TTables de un modulo de datos compartido para elegir sus campos como series de gráfico.

De todas formas, he fabricado una tabla TTable (en un módulo público) que está vacía y tiene los campos que necesito para graficar:
Por ejemplo, los campos de esta TTable vacía son serie eje X, 1era serie eje y, 2nda serie eje Y, 3era serie eje Y, etc,..; y cada campo puede venir de diferentes tablas.
La tabla vacía la lleno con un consulta de parámetros TQuery, que se ejecuta en tiempo de ejecución con unas líneas en su propiedad SQL: ACLARO que antes de llenar la tabla, uso una instrucción para vaciarla totalmente de registros, y evitar que me entren en el gráfico datos pertenecientes a consultas anteriores. Entonces, empieza a llenarse desde "cero" registros.
Y esta misma consulta TQuery es la que asigné desde un primer momento a la propiedad "dataSet" (tiempo diseño) del TQuickRep que contiene al TQRChart.

Que embrollo!!! Esto es para leerlo despacio y detenidamente


Con respecto al título: como mi TQRChart está dentro de un TQuickRep, quito definitivamente el título de la gráfica y lo reemplazo por un objeto TQRLabel (para informes), cuya propiedad "Caption" puede ser cambiada en tiempo de ejecución, de distintas maneras.


Espero esté suficientemente claro, y que mi idea te pueda servir de algo.

Saludos!

g_rojo 12-12-2007 18:09:51

Hola iga

Tu pregunta es la misma que yo hiciera en otro momento, y la línea de código para cambiar el título de un DBChart me resultaría útil, porque yo mismo me preguntaba acerca de esto mismo.

En mi caso, no encontré las propiedades o métodos a partir de los cuales se acceden a las "partes" de un DBChart : título de gráfico, títulos de series, de ejes, datos numéricos para las series, etc. Pero encontre otras alternativas que me ayudaron a resolver mi caso:

EN primer lugar, tengo Borland Delphi 5.0 enterprise
En segundo lugar, uso un TQRChart dentro de un TQuickRep (objeto informe)

La asignacion de las series de datos para graficar varias líneas en un sistema de coordenadas X-Y, la he hecho en tiempo de diseño; no he encontrado aún algún método o propiedad que me permita hacerlo durante tiempo de ejecución. Y HE COMPROBADO que en tiempo de diseño se pueden usar solamente TTables de un modulo de datos compartido para elegir sus campos como series de gráfico.

De todas formas, he fabricado una tabla TTable (en un módulo público) que está vacía y tiene los campos que necesito para graficar:
Por ejemplo, los campos de esta TTable vacía son serie eje X, 1era serie eje y, 2nda serie eje Y, 3era serie eje Y, etc,..; y cada campo puede venir de diferentes tablas.
La tabla vacía la lleno con un consulta de parámetros TQuery, que se ejecuta en tiempo de ejecución con unas líneas en su propiedad SQL: ACLARO que antes de llenar la tabla, uso una instrucción para vaciarla totalmente de registros, y evitar que me entren en el gráfico datos pertenecientes a consultas anteriores. Entonces, empieza a llenarse desde "cero" registros.
Y esta misma consulta TQuery es la que asigné desde un primer momento a la propiedad "dataSet" (tiempo diseño) del TQuickRep que contiene al TQRChart.

Que embrollo!!! Esto es para leerlo despacio y detenidamente


Con respecto al título: como mi TQRChart está dentro de un TQuickRep, quito definitivamente el título de la gráfica y lo reemplazo por un objeto TQRLabel (para informes), cuya propiedad "Caption" puede ser cambiada en tiempo de ejecución, de distintas maneras.


Espero esté suficientemente claro, y que mi idea te pueda servir de algo.

Saludos!

iga 13-12-2007 08:58:11

Gracias!
 
Gracias por coger tiempo y par escribir todos los pasos, he leido y lo voy a intentar, pero yo tengo que utilizar otros componentes! ¡Espero que me sirva!

Muchisimas gracias!

Lepe 13-12-2007 12:23:41

iga: Al menos tienes 3 o cuatro hilos hablando del mismo tema, es imposible seguir las evoluciones, te recomiendo encarecidamente que leas la guía de estilo.

En uno de ellos te he puesto un ejemplo de como empezar. Según he visto por encima, todo se puede hacer por código delphi.

Yo al menos, no voy a mirar todos los hilos para ver las evoluciones, ya es complejo de por sí, con un solo hilo.

Saludos.

iga 13-12-2007 22:41:44

Gracias, y perdona!
 
Hola lepe, perdona por abrir más de un tema. No era mi intención crear confusiones o molestias para aquellos que estais intentando ayudarnos.
De verdad, te agradezco que me hayas respondido y me hayas invitado a leer e la "guia de estilo". Ya me lo he leido e intentaré cumplir las normas!

Muchas gracias.

iga

Lepe 14-12-2007 01:52:10

Gracias a tí, aquí estamos todos para ayudarnos los unos a los otros.

Saludos


La franja horaria es GMT +2. Ahora son las 08:04:36.

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