PDA

Ver la Versión Completa : Alimentar QRlabels desde 1 columna de TstringGrid


amadis
02-05-2007, 19:53:20
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.


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)


QRLabel(ItemIndex).caption := STgrid.Cells[0,ItemIndex];
Inc(ItemIndex);

basti
02-05-2007, 20:09:12
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
Efectivamente el problema de los millones de paginas era que iniciaba mal ItemINdex.

Muchas gracias:)