PDA

Ver la Versión Completa : Asignar valore en forma dinamica a TQRLabel


ocram
19-03-2009, 20:09:08
Hola de nuevo a todos.

en esta ocacion estoy queriendo asignar los valores de un array de 40 posiciones a 40 etiquetas en una banda goupfooter de un quickreport. Ahora para esto se me ocurren 2 opciones:

1.- crear las 40 etiquetas con un nombre continuo por ejemplo qrlT1....qrlT40 y con un ciclo agregar los valores del del array a los botones. ¿Como podria hacer esto tomando en cuenta que ya tengo creadas las 40 etiquetas y el array ya tiene los 40 valores?

2.- Crear las etiquetas en tiempo de ejecucion y asignarle los valores del array(esto ultimo ya lo intente pero me marca un error de access violation).
las variables que uso son:
m tipo Intetger
grupo tipo integer (Esta se incrementa cada que se crea una banda groupfooter para no repetir en mismo nombre de la etiqueta)
total tipo array[1..40] de float

este codigo lo puse en el evento beforeprint de la footerband

for m:= 1 to 40 do begin
with TQRLabel.Create(frmrptCalificacionesFecha.qrbSumSource.AddPrintable(TQRLabel)) do begin
Name := 'qrlTotal'+IntToStr(Grupo)+IntToStr(m);
Left := l*10;
Top := m*6;
Caption := FloatToStr(total[m]);
end;
end;




Agradezco sus comentarios

ContraVeneno
19-03-2009, 20:12:47
sobre los 40 valores,
¿son sumatorias o promedios de los datos que tienes en el detalle del reporte?

ocram
19-03-2009, 20:15:11
los 40 valores ya los tengo asignados en el array de float la idea es decirle de forma dinamica ej:

qrlT1.Caption := FloatToStr(Total[1]);
qrlT2.Caption := FloatToStr(Total[2]);
.
.
.
qrlT40.Caption := FloatToStr(Total[40]);

ContraVeneno
19-03-2009, 20:30:01
si, pero me pareció que son sumas de lo que ya tienes en el reporte. Me pareció que muestras los datos en el "Detail" del reporte y en otro Query haces la sumatoria de esos datos. Eso me pareció que estas haciendo y si ese es el caso, lo mejor es utilizar expresiones con el componente TQRExpr que te permite hacer las sumas.

Por eso preguntaba que si eran sumas. Si estoy equivocado entonces no puedo ayudarte.

nanozaja
08-04-2009, 15:28:29
ese codigo q pones es el q te tira error?? yo tengo hecho algo de generar etiquetas en tiempo de ejecucion... si especificas bien dnd tira el error y agregas un poco de codigo, te puedo ayudar...