Ir para conteúdo
Fórum Script Brasil
  • 0

Imprimindo Conteúdo De Tedit's


Micheus

Pergunta

O objetivo deste modesto tutorial é dar uma idéia de como imprimir qualquer texto que não seja obtido de uma base de dados, por ex.: simples Edits em form's. Ao final do tutorial tem o link para download do exemplo.

Desenhando o Relatório

1) Adicione um form ao seu projeto o qual estará seu relatório. Dê um nome ao form, tipo RelImprimeEdit;

2) Da paleta do Quickreport adicione um componente QuickRep (o 1º da lista) e posicioneo no canto superior esquerdo para facilitar o trabalho de desenho. Como você não iremos obter as informações de uma tabela, mas sim iremos "prencher" o relatório utilizando de labels, defina a propriedade PrintIfEmpty para TRUE;

3) Dê um duplo click na "folha" branca que apareceu (QuickRep) e configure as informações do papel (tamanho e posicionamento: Portrait ou Landscape), defina as margens (observe que a unidade de medida deve estar em MM), defina o tamanho padrão das letras (será utilizado para cada componente que você adicionar ao relatório), defina as bandas que você quer no relatório (header, title, footer, ...). Em meu exemplo adicionei Page header, Detail e Page footer;

4) Estas bandas adicionadas ao relatório podem ser ajustadas em sua altura. Então ajuste conforme necessário;

5) Para colocar um texto de título na banda PageHeader, vá na paleta do QuickReport localize o componente QRLabel (passando o mouse sobre os componentes da paleta você vê no hint o nome dos componentes, caso tenha dúvida). Clique nele para selecionar e a seguir clique na banda PageHeader. Ajuste posição e faça os ajustes das propriedades que você necessitar modificar.

6) Para imprimir o conteúdo dos Edit's que você deseja, você também utilizará os componentes QRLabel (eventualmente um QRMemo ou QRRichEdit). Entretando, estes QRLabel's são adicionados na banda Detail. Coloque-os de acordo com sua necessidade. Por ex. um para o label e outro para receber o valor;

7) Para adicionar o nº de página, data/hora do sistema no rodapé da página (PageFooter), você utiliza o componente QRSysData e altera sua propriedade Data (qrsDateTime, qrsPageNumber, ...)

Particularmente eu prefiro passar as informações por parâmetro para os relatórios, então vou seguir desta forma. Mas, nada impede que você acesse diretamente os componentes que foram adicionados ao form do relatório a partir do form que chama a impressão.

Preparando o relatório para mostrar os dados

Na sessão Public da declaração do form do relatório (RelImprimeEdit), defina uma procedure que conterá todos os parâmetros a serem passados. Em meu exemplo teremos apenas doi parâmetros: Nome e Endereço;

type
  TRelImprimeEdit = class(TForm)
    ...
  public
    procedure Imprime(Nome, Endereco :string);
  end;
implementation
...
procedure TRelImprimeEdit.Imprime(Nome, Endereco :string);
begin
 // inicializa os QRLabel's correspondentes aos campos informados
  QRLNome.Caption := Nome;
  QRLEndereco.Caption := Endereco;
 // Aqui o relatório será apresentado na tela, para visualizar e imprimir
  QuickRep1.Preview;
end;
Chamando o relatório para mostrar os dados No form que chama a impressão (RelImprimeEdit), utilizei um botão para isto. Então, no evento OnClick do mesmo adicionamos o código que cria/destroi o form do relatório dinamicamente:
procedure TFrmMain.Button1Click(Sender: TObject);
begin
  RelImprimeEdit := TRelImprimeEdit.Create(Self);
  try
    RelImprimeEdit.Imprime(Edit1.Text, Edit2.Text);
  finally
    RelImprimeEdit.Free;
  end;
end;

Como criamos o relatório dinamicamente, devemos remover o mesmo da auto-criação. Para isso, no menu principal do Delphi, vá em Projects->Options e na guia Form localize e remova o form RelImprimeEdit da caixa Auto-create forms

Download do exemplo - link (Relatórios\ImprimeEdit.zip)

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...