PDA

Ver la Versión Completa : número de copias en reportbuilder


Galahad
23-12-2010, 13:35:43
buenas,,,

A un reportbuilder, le asigno el número de copias con esta sentencia:


Informe.PrinterSetup.Copies := StrToInt(NCopias.Text);


Ahora necesito , que por ejemplo en la cópia número 3, se imprima una cadena tipo : 'COPIA PARA EL CLIENTE'.
no localizo la propiedad del ppreport que recoje dicha información..

he probado con este código:

procedure TForm2.ppLabel6GetText(Sender: TObject; var Text: string);
begin
TEXT := inttostr( ppreport1.page );
end;
pero esto devuelve el número de página..

agradeceria me indicasen como saber el número de copia que se está imprimiendo...
saludos...

Casimiro Notevi
23-12-2010, 14:56:12
Tienes PageNo y AbsolutePageNo


procedure ReportOnStartPage;
begin
if (AbsolutePageNo=3) then
lbCopia.Visible := true
else
lbCopia.Visible := false;
end;

Galahad
23-12-2010, 16:44:32
Tienes PageNo y AbsolutePageNo


procedure ReportOnStartPage;
begin
if (AbsolutePageNo=3) then
lbCopia.Visible := true
else
lbCopia.Visible := false;
end;


no funciona,, parece ser que devuelve el número de página, no el número de cópia...

Casimiro Notevi
23-12-2010, 18:38:54
Soy muy afortunado, a mí sí me funciona :)

Si tienes un informe con 1 sóla página, entonces pageno y absolutepageno valen lo mismo si vas a imprimir una copia, luego pageno valdrá 1 y absolutepageno valdrá 2 y así en adelante.
Si vas a imprimir 3 copias, por ejemplo, entonces pageno será siempre 1 y absolutepageno irá incrementándose.
Si tienes un informe con 2 páginas, entonces pageno valdrá 1 y luego 2. y absolutepageno valdrá 1, 2, 3 y 4.
Así ha sido en las distintas versiones de reportbuilder, no sé si en las versiones nuevas hay una propiedad que indique exactamente la "copia". Aunque te puedes valer de los valores antes citados.

Un informe de 1 página con 3 copias:
pageno1 absolutepageno1
pageno1 absolutepageno2
pageno1 absolutepageno3

Un informe de 2 páginas con 3 copias:
pageno1 absolutepageno1
pageno2 absolutepageno2
pageno1 absolutepageno3
pageno2 absolutepageno4
pageno1 absolutepageno5
pageno2 absolutepageno6

Galahad
25-12-2010, 21:00:11
Soy muy afortunado, a mí sí me funciona :)
estupendo.....:) , que esa suerte se traslade a toda suerte de menesteres....




Un informe de 2 páginas con 3 copias:
pageno1 absolutepageno1
pageno2 absolutepageno2
pageno1 absolutepageno3
pageno2 absolutepageno4
pageno1 absolutepageno5
pageno2 absolutepageno6

a ver, si no entiendo mal, un informe de 2 páginas con 3 copias,,, se
corresponde mejor con esto, ¿no ? ( o por lo menos es lo que busco)

pageno1 absolutepageno1 (copia1)
pageno1 absolutepageno2 (copia2)
pageno1 absolutepageno3 (copia3)
pageno2 absolutepageno1 (copia1)
pageno2 absolutepageno2 (copia2)
pageno2 absolutepageno2 (copia3)

a ver si es que no hablamos de lo mismo...:D

Casimiro Notevi
25-12-2010, 21:17:51
[..] a ver, si no entiendo mal, un informe de 2 páginas con 3 copias,,, se
corresponde mejor con esto, ¿no ? ( o por lo menos es lo que busco)

pageno1 absolutepageno1 (copia1)
pageno1 absolutepageno2 (copia2)
pageno1 absolutepageno3 (copia3)
pageno2 absolutepageno1 (copia1)
pageno2 absolutepageno2 (copia2)
pageno2 absolutepageno2 (copia3)

a ver si es que no hablamos de lo mismo...:D

Tengo una versión bastante antigua de report builder, no sé si ha cambiado en las versiones más nuevas, pero en las versión que tengo es así:


Informe con 2 páginas:
pageno1 absolutepageno1
pageno2 absolutepageno2

Informe con 2 páginas + 1 copia:
pageno1 absolutepageno1
pageno2 absolutepageno2
pageno1 absolutepageno3
pageno2 absolutepageno4

Informe con 2 páginas + 2 copias:
pageno1 absolutepageno1
pageno2 absolutepageno2
pageno1 absolutepageno3
pageno2 absolutepageno4
pageno1 absolutepageno5
pageno2 absolutepageno6

Informe con 2 páginas + 3 copias:
pageno1 absolutepageno1
pageno2 absolutepageno2
pageno1 absolutepageno3
pageno2 absolutepageno4
pageno1 absolutepageno5
pageno2 absolutepageno6
pageno1 absolutepageno7
pageno2 absolutepageno8

-----------------------------------
Si el informe tiene sólo 1 página:
pageno1 absolutepageno1

Con 1 página + 1 copia:
pageno1 absolutepageno1
pageno1 absolutepageno2

Con 1 página + 2 copias:
pageno1 absolutepageno1
pageno1 absolutepageno2
pageno1 absolutepageno3

Con 1 página + 3 copias:
pageno1 absolutepageno1
pageno1 absolutepageno2
pageno1 absolutepageno3
pageno1 absolutepageno4

Galahad
25-12-2010, 21:32:32
gracias,, parece ser que absolutepageno no me sirve,

en lugar de esto:

Informe con 2 páginas + 2 copias:
pageno1 absolutepageno1
pageno2 absolutepageno2
pageno1 absolutepageno3
pageno2 absolutepageno4
pageno1 absolutepageno5
pageno2 absolutepageno6

yo necesito esto:

Informe con 2 páginas + 2 copias:
pageno1 absolutepageno1
pageno2 absolutepageno1
pageno1 absolutepageno2
pageno2 absolutepageno2
pageno1 absolutepageno3
pageno2 absolutepageno3



no obstante he podido resolverlo 'a pedal', esto es, con una variable mantenida e inicializada manualmente en diferentes eventos de impresión.
saludos...

Casimiro Notevi
25-12-2010, 21:42:59
Sí, con una variable contador puedes suplirlo.