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.