Impressão sem Preview
Como limitar as páginas para imprimir sem preview
Para iniciar esta coluna, irei dar umas dicas sobre o QuickReport. Embora ele não esteja presente no Delphi 8 e, no Delphi 7 não seja instalado junto com a instalação padrão, acredito que muitos usuários ainda façam uso dele.
"Como limitar as páginas para imprimir diretamente, sem usar PREVIEW ? Os métodos QRPRINTER.FIRSTPAGE e QRPRINTER.LASTPAGE não surtiram efeitos, pois, estranhamente, os resultados dos ambos são 0 (zero)"
A resposta para esta pergunta é bastante simples: ao invés de se usar estas propriedades de QRPrinter, deve-se usar as propriedades de PrinterSettings. Esta propriedade é do tipo TQRPrinterSettings e indica as características do relatório, como páginas a serem impressas ou título. Por exemplo, este código imprime as páginas 2 e 3 do relatório:
with frmRelato.QuickRep1 do begin
PrinterSettings.FirstPage := 2;
PrinterSettings.LastPage := 3;
Print;
end;
"Coloquei o componente TPrintDialog para facilitar a opção de imprimir (botão OK) ou não (botão CANCELAR). Não adiantou. Até porque TQuickRep parece não saber nada sobre o limite de páginas. Existe solução, colocando dois botões (um para PRINTSETUP e outro para PRINT) e escrevendo QuickRep1.QRPrinter.PrintSetup e QuickRep1.QRPrinter.Print, respectivamente. Prefiro concentrar um só botão para unificar os dois métodos juntos."
Para mostrar a caixa de diálogo de configuração e imprimir logo em seguida, como o Word ou o Internet Explorer, deve-se usar o método PrinterSetup e, em seguida, o método Print. O único problema é que PrinterSetup é uma procedure: como saber se o usuário clicou Ok ou Cancelar ? A resposta está na propriedade Tag do componente QuickRep. Se ela for 0, então o usuário clicou Ok, se for 1, o usuário clicou Cancelar:
with frmRelato.QuickRep1 do begin
PrinterSetup;
if Tag = 0 then
Print;
end;
"Como imprimir um relatório com número de página inicial diferente de 1 ?"
Ao colocar um componente QRSysData no relatório, o QuickReport imprime o número de página conforme a página do relatório. Porém, em alguns casos, deseja-se que a primeira página de um relatório não seja impressa como página 1, mas com a numeração iniciada a partir de outro número. Para isto, basta colocar um QRExpr na página e, no código do programa, antes de chamar o método Print, colocar algo como:
frmRelato.QRExpr4.Expression :=
'''Pág.''+STR(PAGENUMBER+'+ IntToStr(StrToInt(Edit3.Text)-1)+')';
A variável PAGENUMBER dá o número da página atual e permite obter o número da pá
...
Exibição do post interrompida. Para ler conteúdo completo,
clique aqui