Ver Mensaje Individual
  #2  
Antiguo 07-11-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Reputación: 21
Angel.Matilla Va por buen camino
Bueno. He resuelto todos los problemas menos uno. El código ha quedado así partiendo de este query:
Código:
SELECT A.Partido, B.Sigla, B.Color, C.Fecha, SUM(A.Votos) Votos 
  FROM Resultados A, Partidos B, Elecciones C 
 WHERE C.Proceso = :Proceso 
   AND C.Fecha BETWEEN :Desde AND :Hasta AND A.Proceso = C.Codigo 
   AND A.Mesa IN (SELECT Codigo FROM Mesas) 
   AND A.Partido = B.Codigo
   AND A.Partido IN (22, 4, 2, 3, 17, 16)
 GROUP BY A.Partido, B.Sigla, B.Color, C.Fecha ORDER BY A.Partido, C.Fecha
y con este código:
Código:
Chart1->Chart3DPercent                 = 10;
Chart1->Title->Font->Style             = TFontStyles() << fsBold;
Chart1->BottomAxis->Title->Caption     = "Años";
Chart1->BottomAxis->Title->Font->Style = TFontStyles() << fsBold;
Chart1->BottomAxis->Labels             = fMenu->Auxiliar->FieldByName("Fecha")->AsInteger;
Chart1->LeftAxis->Title->Caption       = "Votos";
Chart1->LeftAxis->Title->Font->Style   = TFontStyles() << fsBold;

cAux = "";
for (; !fMenu->Auxiliar->Eof; fMenu->Auxiliar->Next())
{
     if (fMenu->Auxiliar->FieldByName("Sigla")->AsString != cAux)
     {
          pItem = Evolucion->Items->Add();
          pItem->Caption = (cAux = fMenu->Auxiliar->FieldByName("Sigla")->AsString);
          for (nItem = 1; nItem < Evolucion->Columns->Count; nItem ++)
               pItem->SubItems->Add("");

          Chart1->AddSeries(&TLineSeries(Chart1));
          Chart1->Series[Chart1->SeriesCount() - 1]->Title = cAux;
          Chart1->Series[Chart1->SeriesCount() - 1]->SeriesColor = (TColor)fMenu->Auxiliar->FieldByName("Color")->AsInteger;
     }

     nVotos[0] = 0;
     for (nItem = 1; nItem < Evolucion->Columns->Count; nItem ++)
          if (Evolucion->Columns->Items[nItem]->Caption == IntToStr(fMenu->Auxiliar->FieldByName("Fecha")->AsInteger))
          {
               nVotos[0] = fMenu->Auxiliar->FieldByName("Votos")->AsInteger;
               pItem->SubItems->Strings[nItem - 1] = FormatFloat("###,##0", nVotos[0]);
               break;
          }

          Chart1->Series[Chart1->SeriesCount() - 1]->Add(nVotos[0], fMenu->Auxiliar->FieldByName("Fecha")->AsInteger,
                                                              (TColor)fMenu->Auxiliar->FieldByName("Color")->AsInteger);
}
Chart1->Series[0]->XLabelsSource = "FECHA";
Obtengo este resultado:

Sin embargo, como podéis ver, las últimas bandas no se inician donde debieran a pesar de añadir valores al definir la serie donde así sea, y esto no se me ocurre como resolverlo.
Responder Con Cita