Ver Mensaje Individual
  #1  
Antiguo 22-01-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Red face Definir un TQRChart en tiempo de ejecución (2)

Sigo con mis batallas con este componente. En un informe diseñado con QR tengo un TQRChart que uso en dos o tres sitios distintos de la aplicación. Me funciona bien en todos ellos menos en uno. A ver si soy capaz de explicarme.

1. Donde funciona bien
A partir de esta tabla, tal cual:


Con este código:
Código:
fMenu->Auxiliar->Close();
fMenu->Auxiliar->SQL->Text = "SELECT * FROM " + cTabTemp + " WHERE Orden > 0 AND Votos1 > 0";
fMenu->Auxiliar->Open();

fIndBln->QRDBChart1->LeftAxis->Title->Caption = "Votos";
fIndBln->Series1->DataSource           = fMenu->Auxiliar;
fIndBln->Series1->Title                = HeaderControl7->Sections->Items[1]->Text;
fIndBln->Series1->Marks->ArrowLength   = 0;
fIndBln->Series1->Marks->Style         = smsValue;
fIndBln->Series1->SeriesColor          = clRed;
fIndBln->Series1->XLabelsSource        = "SIGLA";
fIndBln->Series1->BarStyle             = bsRectGradient;
fIndBln->Series1->YValues->ValueSource = "VOTOS1";

fIndBln->Series2->DataSource           = fMenu->Auxiliar;
fIndBln->Series2->Title                = HeaderControl7->Sections->Items[2]->Text;
fIndBln->Series2->Marks->ArrowLength   = 0;
fIndBln->Series2->Marks->Style         = smsValue;
fIndBln->Series2->SeriesColor          = clGreen;
fIndBln->Series2->BarStyle             = bsRectGradient;
fIndBln->Series2->YValues->ValueSource = "VOTOS2";
Obtengo este gráfico:


2. Donde no funciona
Con esta tabla:


Y con este código:
Código:
fIndBln->QRDBChart1->RemoveAllSeries();
fIndBln->QRDBChart1->LeftAxis->Title->Caption       = "Votos";
fIndBln->QRDBChart1->LeftAxis->Title->Font->Style   = TFontStyles() << fsBold;

for (nItem = 2; nItem < fMenu->Auxiliar->FieldDefs->Count; nItem ++)
{
     fIndBln->QRDBChart1->AddSeries(&TLineSeries(fIndBln->QRDBChart1));
     fIndBln->QRDBChart1->Series[fIndBln->QRDBChart1->SeriesCount() - 1]->DataSource           = fMenu->Auxiliar;
     fIndBln->QRDBChart1->Series[fIndBln->QRDBChart1->SeriesCount() - 1]->SeriesColor          = clYellow;
     fIndBln->QRDBChart1->Series[fIndBln->QRDBChart1->SeriesCount() - 1]->XLabelsSource        = "NOMBRE";
     fIndBln->QRDBChart1->Series[fIndBln->QRDBChart1->SeriesCount() - 1]->YValues->ValueSource = fMenu->tTemp->FieldDefs->Items[nItem]->Name;
}
(La tabla del gráfico inmediato superior es esa fMenu->Auxiliar; realmente es un query)

Sólo obtengo esto:


He probado a "forzar" con sólo dos de las columnas de datos (PORCC y PORCD) y copiando literalmente el código del principio, cambiando en el mismo donde VOTOS1 y VOTOS2 por esas dos columnas y SIGLA por NOMBRE, pero da lo mismo. Y ya estoy harto de darle vueltas al molino porque llevo una semana con este tema y no soy capaz de resoverlo.

He de decir con el resultado del query, si hago la definición en tiempo de diseño sale el gráfico perfecto:


Pero si trato de trasladar esa definición al código, ¡falla estrepitosamente!
Responder Con Cita