Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-06-2007
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
DBChart

Hola a Todos

Me podrian indicar, como puedo hacer funcionar un DBChart, quiero probar con un ejemplo simple, digamos que tenga 2 tablas una de colegio(codigo, descripcion) y alumnos(codigo,nombre,ci,sexo,codigoColegio)
me gustaria poder graficar en un TDBChart (Pie->Torta), cuantos alumnos hay por colegio o tambien saber el porcentaje de mujeres y hombres de todos los colegios.

He visto que existe una pestaña dentro de Series -> DataSource, donde puedes escoger el dataSet, le asigne un query pero nada no aparece ningun campo para seleccionar en labels, que tipo de consultas debo hacer, no estoy entendiendo como funciona, me podrian indicar por favor muchisimas gracias por adelantado.

Saludos y que tengan un bonito dia
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #2  
Antiguo 23-06-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Vamos a ver. Según entiendo, ya tienes un TQuery con la consulta que te muestra los datos que necesitas, este query asignado a un dataset. Un DBChart con una serie (supongamos que es tipo pastel, de entrada la serie se llamaría Series1 y sería del tipo TPieSeries).

Hasta ahí todo bien... ahora, según he visto, el problema es que siempre tratan de hacer la asignación al TDBChart, cuando realmente se debería trabajar con la serie. Al TDBChart solo se le enlaza el dataset y ya, todo el trabajo se hace sobre la serie.

Seleccionando la serie en el inspector de objetos, deberás establecer las propiedades XLabelSource para determinar el nombre de cada valor. Y en la propiedad PieValues, encontrarás una que se llama ValueSource, en esta es donde le asignas el campo que representa el valor que quieres mostrar.

Tambien encontrarás una propiedad llamada "Marks" y dentro de esta, una que se llama Style, donde defines que tipo de valor quieres, si es como porcentaje, el valor simple, etc, etc.

Y en si, eso es todo.

¿alguna duda?
__________________

Responder Con Cita
  #3  
Antiguo 25-06-2007
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola ContraVeneno, perdon por responder recien pero no tenia Internet.
La verdad es que si estaba volando con esto del DBChart, ahora me queda mas claro, hare pruebas y si me surge otra duda te pregunto.

Muchisimas Gracias
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 25-06-2007
tenporal tenporal is offline
Miembro
 
Registrado: may 2007
Posts: 28
Poder: 0
tenporal Va por buen camino
no se puso el codigo como deberia

aqui va otra vez el codigo, espero que salga bien presentable.....

Código Delphi [-]
procedure Tform1.Button4Click(Sender: TObject);
var
   ejex,ejey:real; // el eje x y el eje y
   InputString: string; //para pedir un valor que luego lo convierto a numero
   error1,vi,vf, CICLO :integer; 
   // error1 es una variable que se ocupa cuando conviertes una 
   // cadena a numero y si se realizo tendra un cero.
   //vi es el valor inicial para graficar
   // vf es el valor final para graficar
   // ciclo es la variable de control para un ciclo de repeticiones
begin
     SERIES1.CLEAR; // limpio la serie 1 de mi grafico
     InputString:= InputBox('Teclee por favor', 'Valor inicial para X', '-50');
     // pido al usuario un valor inicial o le asigno por default -50
     VAL(inputstring,vi,ERROR1);
     // convierto la respuesta del usuario en numero y la guardo en vi
     if error1 = 0 then 
        begin
        // si es un numero pido el segundo numero
            InputString:= InputBox('Teclee por favor', 'Valor Final para X', '50');
            // pido al usuario un valor final o le asigno por default 50
            VAL(inputstring,vf,ERROR1);
            // convierto la respuesta en un numero y la guardo en vf
           if error1 = 0 then
            begin
            // si vf es un numero verifico que vi es menor que vf
                if vf <= vi then
                     SHOWMESSAGE('VALOR FINAL NO PUEDE SER MENOR O IGUAL QUE VALOR INICIAL')
               ELSE
                   BEGIN
                        // si vi < vf realizo un ciclo desde el vi hasta el vf
                        FOR CICLO := VI TO VF DO
                            BEGIN
                                EJEX := CICLO; // al eje x le asigno el valor de ciclo

                                EJEY := (NUMA*CICLO)*(NUMA*CICLO)+(NUMB*CICLO)+(NUMC); 
                                // eje y tiene la ecuacion de segundo grado, ciclo es mi variable x
                                SERIES1.AddXY( EJEX , EJEY , ' ' , clBlue );
                                // a la serie 1 del chart le adiciono los datos x, y
                         END;
                         CHART1.Visible := TRUE
                         // hago visible el chart que en un inicio tiene la propiedad
                        // visible en false
                     END // fin de la decision vf <= vi
                END // fin de convertir el segundo numero 
           ELSE
               SHOWMESSAGE('VALOR FINAL DEBE SER NUMERICO');
           END // fin de convertir el primer numero
      ELSE
           SHOWMESSAGE('VALOR INICIAL DEBE SER NUMERICO');
end; // fin del boton graficar

Otro ejemplo de dar valores a una serie en un grafico
Código Delphi [-]
With Series1 do
   Begin
      AddXY( 15.2 , 25.4 , 'Barcelona' , clBlue );
      Add(  40, 'Lapiz' , clRed ) ;
      Add(  60, 'Papel',  clBlue ) ;
      Add(  30, 'Tinta', clGreen ) ;
end;
Responder Con Cita
  #5  
Antiguo 27-10-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Problema similar (No refresca)

Hola muchascos, los molesto una vez mas
No me refresca el DBChart, logré que refresque con un datasource y refrescando el datasource, el tema es que yo tengo los colores predefinidos y son solo 4 items en la torta. Si asigno los colores en tiempo de diseño no me refresca los valores, si no asigno colores funciona, pero con los colores mas feos que encuentra en la paleta de colores del Win3.1 mas o menos.

Como cambio los colores una vez haya refrescado el componente???
Saludos y muchas gracias!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con DBchart mamaza_k OOP 1 25-10-2007 19:41:08
Problema con un DBChart Lucciano Gráficos 1 04-05-2006 18:57:37
Problemas con DBChart jmlifi Gráficos 0 21-04-2005 17:35:08
Configurar DBChart senpiterno Gráficos 0 12-10-2004 07:32:54
dbchart y tendencia jourdan Gráficos 1 29-04-2004 22:23:30


La franja horaria es GMT +2. Ahora son las 03:39:58.


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