Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-12-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Crear un TDBChart en tiempo de ejecución

Buenas. Tengo un query que me da esta salida:

y a partir del mismo trato de montar un TDBChart. Para ello, en tiempo de ejecución, hago las asignaciones pertinentes:
Código:
Chart2->RemoveAllSeries();
Chart2->Chart3DPercent                 = 5;
Chart2->BottomAxis->Title->Caption     = "Año";
Chart2->BottomAxis->Title->Font->Style = TFontStyles() << fsBold;
Chart2->BottomAxis->Labels             = fMenu->Query->FieldByName("Fecha")->AsInteger;
Chart2->LeftAxis->Title->Caption       = "Votos";
Chart2->LeftAxis->Title->Font->Style   = TFontStyles() << fsBold;

for (nItem = 2; nItem < fMenu->Query->FieldDefs->Count; nItem ++)
{
     fMenu->Auxiliar->Close();
     fMenu->Auxiliar->ParamByName("Codigo")->AsInteger = StrToInt(StringReplace(fMenu->Query->FieldDefs->Items[nItem]->Name, "VOTOS", "", oReplace));
     fMenu->Auxiliar->Open();
     pItem = Evolucion->Items->Add();
     pItem->Caption = fMenu->Auxiliar->FieldByName("Sigla")->AsString;

     if ((cColor = (TColor)fMenu->Auxiliar->FieldByName("Color")->AsInteger) == 0)
          while (cColor > 0)
          {
               cColor = (TColor)RGB(random(255), random(255), random(255));
               if (slColor->IndexOf(cColor) == -1)
                    break;
          }
     slColor->Add(cColor);

     Chart2->AddSeries(&TLineSeries(Chart2));
     Chart2->Series[Chart2->SeriesCount() - 1]->DataSource           = fMenu->Query;
     Chart2->Series[Chart2->SeriesCount() - 1]->SeriesColor          = cColor;
     Chart2->Series[Chart2->SeriesCount() - 1]->Title                = pItem->Caption;
     Chart2->Series[Chart2->SeriesCount() - 1]->XLabelsSource        = "Fecha";
     Chart2->Series[Chart2->SeriesCount() - 1]->XValues->ValueSource = "Codigo";
     Chart2->Series[Chart2->SeriesCount() - 1]->YValues->ValueSource = fMenu->Query->FieldDefs->Items[nItem]->Name;
}
El problema viene precisamente en la definición de XValues->ValueSource. Si lo dejo omo está, con Código, al gráfica obtenida es esta:

Y al verdad no me parece una presentación muy elegante. Y si en vez de Código pongo el campo Contador o Fecha, el resultado es este:

Como veis sale vacío y no acabo de entender las razones para que haga esto. Como se ve en la leyenda de la gráfica en ambos casos está la misma información.
Responder Con Cita
  #2  
Antiguo 24-12-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Solucionado. Eliminé del query el campo Código y deje el resto y puse la referencia en el TDBChart al campo Contador. Ahora queda perfecto.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear botones en tiempo de ejecucion mRoman OOP 5 24-04-2017 18:09:02
Crear conexion en tiempo de ejecución D1360666 Conexión con bases de datos 2 11-01-2016 15:17:56
Crear un DSN en tiempo de ejecucion neyvan Conexión con bases de datos 7 21-05-2004 17:41:45
Añadir series a TDBChart en tiempo de ejecución chemoide Gráficos 1 10-05-2004 16:44:26


La franja horaria es GMT +2. Ahora son las 07:46:26.


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