Fórum Como imprimir os dados de um DBGrid??? #196031

19/11/2003

0

Ow, e aí, blz?

Tô cuma dúvida cruel....

Como faço para definir a área de impressão de um Dbgrid, tendo um Edit como cabeçalho? Tipo assim... o Edit fica no topo da página c/ um nome e abaixo dele tem uma tabela (Paradox 7) num dbgrid...

Por favor, alguém me explique desde de o começo... como que cria o componente de impressão, como chamar o menu de impressora e como imprimir... sou novato em Delphi (no caso meu, uso o Delphi 5).

Desde já agradeço a atenção e a paciencia...


Maluco Tubaina

Maluco Tubaina

Responder

Posts

19/11/2003

Marcelo.c

Crie um relatório utilizando um Gerador como o Quick Report por exemplo.

Neste caso, o ideal seria você pegar uma apostila em:

www.clubedelphi.com.br/apostilas/apostilas.asp


Responder

Gostei + 0

20/11/2003

Maluco Tubaina

É realmente necessário criar o relatório no Qreport ou tem algum outro jeito de imprimir o Dbgrid diretamente? Sei que na ´orelha´ Dialogs tem componentes de impressão, mas não sei como usá-los... vc poderia me explicar o procedimento???
Grato!


Responder

Gostei + 0

21/11/2003

Marcelo.c

Você pode utilizar TPrinter para imprimir diretamente para a porta de impressão.

O código abaixo foi passado pelo [b:79f05ea9b6]Carnette[/b:79f05ea9b6] em outro Post.

Impressão Com o TPrinter:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Linha:integer;
  Tamanho:integer;
  Coluna:integer;
begin
  Printer.Orientation := poLandscape;
  Printer.BeginDoc;
  Printer.Canvas.Pen.Width := 5;
  Printer.Canvas.Font.Name := ´Times New Roman´;
  Printer.Canvas.Font.Size := 10;
  Linha := 20;
  Coluna:= 20;
  Tamanho := Printer.Canvas.TextWidth(´a´);
  Table1.First;
  while not Table1.Eof do
  begin
    if Linha = 20 then
    begin
      Coluna := 20;
      Printer.Canvas.TextOut(0,Linha,´Relação de Clientes´);
      Linha := Linha - Printer.Canvas.Font.Height + 5 ;
      Printer.Canvas.TextOut(Coluna,Linha,´Cod´);
      Coluna:= Coluna + (Tamanho * 5 );
      Printer.Canvas.TextOut(Coluna,Linha,´Nome´);
      Coluna:= Coluna + (Tamanho * 30);
      Printer.Canvas.TextOut(Coluna,Linha,´Endereço´);
      Coluna:= Coluna + (Tamanho * 30);
      Linha := Linha - Printer.Canvas.Font.Height + 5 ;
    end;
    Coluna := 20 ;
    Printer.Canvas.TextOut(Coluna,Linha,Table1.FieldByName(´Codigo´).AsString);
    Coluna:= Coluna + (Tamanho * 5 );
    Printer.Canvas.TextOut(Coluna,Linha,Table1.FieldByName(´Nome´).AsString);
    Coluna:= Coluna + (Tamanho * 30);
    Printer.Canvas.TextOut(Coluna,Linha,Table1.FieldByName(´End´).AsString);
    Coluna:= Coluna + (Tamanho * 30);
    Linha := Linha - Printer.Canvas.Font.Height + 5 ;
    Table1.Next;
    if Linha > Printer.PageHeight-20 then
    Begin
      Printer.NewPage;
      Linha := 20;
    end;
  end;
  Printer.EndDoc;
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar