Como imprimir os dados de um DBGrid???
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...
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
Curtidas 0
Respostas
Marcelo.c
19/11/2003
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
Neste caso, o ideal seria você pegar uma apostila em:
www.clubedelphi.com.br/apostilas/apostilas.asp
GOSTEI 0
Maluco Tubaina
19/11/2003
É 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!
Grato!
GOSTEI 0
Marcelo.c
19/11/2003
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:
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;
GOSTEI 0