impressão direta

23/12/2005

1

olá galera!

estou precisando de uma procedure para imprimir cupons. Estou enviando a que eu uso porem ao final de uma pagina A4 ela para de imprimir. Será que alguém aí tem uma solução?

Primeiro a procedure envia tudo para um memo, simulando um cupom.
Depois ela chama outra procedure para imprimir na impressora.

//Procedure do Botão Gravar
procedure TfCupons.btGravarClick(Sender: TObject);
var cont, numpag,i: integer;
begin
cont:= 1;
numpag := 1;

VerificaCampos;

//Avisa sobre a ação gravar
if Application.MessageBox(´O Copum será gravado e impresso.´+ #13+´O registro ficará bloqueado para efetuar qualquer operação.´+13+´Deseja Continuar???´,´Atenção´,36)=7 then
CancelaCupons

else
//Se confirmada a opção gravar, grava o cupom...
GravaCupons;
//...inseri linhas no memo1...
Memo1.Lines.Clear;
Memo1.Lines.Add(´CUPOM Nº.: ´+DBEdit1.Text+´-´+DModule.tbFavorecidoCodFavorecido.Value+´-´+DBEdit2.Text+´ TIPO: ´+DBComboBox1.Text);
Memo1.Lines.Add(DModule.tbCFCNomeCFC.Value);
Memo1.Lines.Add(´Fone: ´+DModule.tbCFCTelefoneCFC.Value+´ Fax: ´+DModule.tbCFCFaxCFC.Value);
Memo1.Lines.Add(´Código: ´+DModule.tbAlunosCodigoAluno.AsString);
Memo1.Lines.Add(´Nome: ´+DModule.tbAlunosNomeAluno.Value);
Memo1.Lines.Add(´Identidade: ´+DModule.tbAlunosCIAluno.Value+´ - CPF: ´+DModule.tbAlunosCPFAluno.Value);
Memo1.Lines.Add(´Produto: ´+DModule.tbCuponsProduto.Value);
Memo1.Lines.Add(´Quantidade: ´+DBEdit5.Text);
Memo1.Lines.Add(´Unitário: ´+DBEdit6.Text);
Memo1.Lines.Add(´Desconto: ´+DBEdit8.Text);
Memo1.Lines.Add(´----------------------------------´);
Memo1.Lines.Add(´TOTAL: ´+DBEdit7.Text);
Memo1.Lines.Add(´´);
Memo1.Lines.Add(´Reconheço o débito acima:____________________________________´);
Memo1.Lines.Add(´´);
Memo1.Lines.Add(´#´);
Memo1.Lines.Add(´´);
//...até contagem da variável cont ser maior que Qtd...
while cont <= DModule.tbCuponsQtd.Value do
begin
Memo1.Lines.Add(´CUPOM Nº.: ´+DBEdit1.Text+´-´+DModule.tbFavorecidoCodFavorecido.Value+´-´+DBEdit2.Text+´ ´+IntToStr(numpag)+´ de ´+DModule.tbCuponsQtd.AsString);
Memo1.Lines.Add(DModule.tbCFCNomeCFC.Value);
Memo1.Lines.Add(´Fone: ´+DModule.tbCFCTelefoneCFC.Value+´ Fax: ´+DModule.tbCFCFaxCFC.Value);
Memo1.Lines.Add(´ ´);
Memo1.Lines.Add(´Código: ´+DModule.tbAlunosCodigoAluno.AsString);
Memo1.Lines.Add(´Nome: ´+DModule.tbAlunosNomeAluno.Value);
Memo1.Lines.Add(´Identidade: ´+DModule.tbAlunosCIAluno.Value);
Memo1.Lines.Add(´ ´);
Memo1.Lines.Add(´Produto: ´+DModule.tbCuponsProduto.Value);
Memo1.Lines.Add(´ ´);
Memo1.Lines.Add(´__________________________________´);
Memo1.Lines.Add(´ ´+DModule.tbCFCNomeCFC.Value+´ ´);
Memo1.Lines.Add(´É OBRIGATORIO A APRESENTAÇÃO DESTE´);
Memo1.Lines.Add(´ ´);
Memo1.Lines.Add(´=========================================´);
Memo1.Lines.Add(´´);
cont := cont + 1;
numpag := numpag + 1;

ImprimeCupons;
end;
end;

//Procedure para imprimir na impressora
procedure TfCupons.ImprimeCupons;
var i:Integer;
begin
with Printer do
begin
BeginDoc;
for i := 0 to Memo1.Lines.Count do
Canvas.TextOut(110,110 + (i * Canvas.TextHeight(Memo1.Lines.Strings[i])),Memo1.Lines.Strings[i]);

EndDoc;
end;
end;


Responder

Posts

24/12/2005

Edilcimar

leia isto
http://forum.clubedelphi.net/viewtopic.php?t=70693


Responder