Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Alimentar QRlabels desde 1 columna de TstringGrid (https://www.clubdelphi.com/foros/showthread.php?t=43115)

amadis 02-05-2007 19:53:20

Alimentar QRlabels desde 1 columna de TstringGrid
 
Estoy tratando de alimentar 75 QRLabels (nombrados desde QRLabel1 hasta QRLabel75) Todos estan incluidos en un QRdetailBand que ocupa toda la hoja
y estan puestos sobre un QRImage (que es un formulario impreso que debo completar con los datos del StringGrid)

Traté de hacerlo para probar sólo con algunos, mediante este código que encotré en el foro pero el reporte me crea MILES DE HOJAS con los 3 labels
Pero con los datos que figuran en las columnas. Me crea en la Hoja 1, 3 la columna 0(fila 0 que es enzabezado)

Y el dato que necesito esta siempre en la Columna 1, en las filas que existan desde la 1º fila despues de una FIXEDROW hasta la última que haya.

Código Delphi [-]
ItemIndex := 1;
if ItemIndex <  STgrid.RowCount then
begin
QRLabel1.Caption := STgrid.Cells[0,ItemIndex];
QRLabel2.Caption := STgrid.Cells[0,ItemIndex];
QRLabel3.Caption := STgrid.Cells[0,ItemIndex];
end;
Inc(ItemIndex);
MoreData := ItemIndex <= STgrid.RowCount;

Entonces si tengo 25 Rows en el StringGrid, cargar los caption de los Labels del 1 al 25 con los datos de las filas 1 a 25 (columna 0 nada mas).

Había pensado en hacer pero no se como, un For o un While recorriendo la Grid hasta llegar a la ultima fila
Y que cada vuelta haga lo siguiente: (porsupuesto que lo que propongo es solo una idea no se como llevarla acabo)

Código Delphi [-]
 QRLabel(ItemIndex).caption := STgrid.Cells[0,ItemIndex];
 Inc(ItemIndex);

basti 02-05-2007 20:09:12

Código Delphi [-]
ItemIndex := 1;
if ItemIndex <  STgrid.RowCount then
begin
QRLabel1.Caption := STgrid.Cells[0,ItemIndex];
QRLabel2.Caption := STgrid.Cells[0,ItemIndex];
QRLabel3.Caption := STgrid.Cells[0,ItemIndex];
end;
Inc(ItemIndex);
MoreData := ItemIndex <= STgrid.RowCount;

Si inicializas siempre ItemIndex, la última condición siempre se cumplirá, por lo tanto te generará páginas indefinidamente. La inicialización deberías ponerla en el evento BeforePrint del informe.

amadis 03-05-2007 04:28:23

listo! era eso nomás
 
Efectivamente el problema de los millones de paginas era que iniciaba mal ItemINdex.

Muchas gracias:)


La franja horaria es GMT +2. Ahora son las 12:03:21.

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