Fórum Imprimir uma função que grava txt #418354
12/06/2012
0
em vez de gravar em txt. como aqui......impressao.SaveToFile(C:\impressaoCastelo.txt);
queria mandar isso direto pra uma impressora generic.
Alguém pode me ajudar?????????????
//Realizar impressão para o cliente
procedure TfrmPreVenda.imprimeCastelo;
const
cJustif = #27#97#51;
cFJustif = #27#97#52;
cEject = #12;
{ Tamanho da fonte }
c10cpi = #18;
c12cpi = #27#77;
c17cpi = #15;
cIExpandido = #14;
cFExpandido = #20;
{ Formatação da fonte }
cINegrito = #27#71;
cFNegrito = #27#72;
cIItalico = #27#52;
cFItalico = #27#53;
var
F:TextFile;
ini : TLerINI;
i, parcela : Integer;
cabecalho, listaItem, pagamentos, impressao : TStringList;
titulo, porta, obs : String;
b : TBancoDados;
begin
cabecalho := TStringList.Create;
listaItem := TStringList.Create;
pagamentos := TStringList.Create;
impressao := TStringList.Create;
try
if tela = 1 then
begin
titulo := ORCAMENTO;
end
else
begin
titulo := PRE VENDA;
end;
b.consultClientes(codCli);
with DMPrinc do
begin
cabecalho.Add(FormatDateTime(DD/MM/YYYY, Date)+ +FormatDateTime(hh:mm, Time));
cabecalho.Add(edtNroPedido.Text);
cabecalho.Add(edtVendedor.Text);
cabecalho.Add(Copy(CDSClientesNOME.AsAnsiString,1,30)
+ +
CDSClientesCODIGO.AsAnsiString
+ +
FormatDateTime(DD/MM/YYYY, Date));
cabecalho.Add(Copy(CDSClientesENDERECO.AsAnsiString,1,30)
+ +
Copy(CDSClientesBAIRRO.AsAnsiString,1,20)
+ +
Copy(CDSClientesTELEFONE.AsAnsiString,1,16));
if CDSClientesFISICA_JURIDICA.AsAnsiString = Física then
begin
cabecalho.Add(Copy(CDSClientesCIDADE.AsAnsiString,1,20)
+ +
CDSClientesUF.AsAnsiString
+ +
Copy(CDSClientesCPF.AsAnsiString,1,20)
+ +
Copy(CDSClientesRG.AsAnsiString,1,20)
);
end
else
begin
cabecalho.Add(Copy(CDSClientesCIDADE.AsAnsiString,1,20)
+ +
CDSClientesUF.AsAnsiString
+ +
Copy(CDSClientesCPF.AsAnsiString,1,20)
+ +
Copy(CDSClientesRG.AsAnsiString,1,20)
);
end;
cabecalho.Add(Copy(CDSClientesENDERECO_COBRANCA.AsAnsiString,1,30)
+ +
Copy(CDSClientesBAIRRO_COBRANCA.AsAnsiString,1,20)
+ +
Copy(CDSClientesTELEFONE_COBRANCA.AsAnsiString,1,16));
cabecalho.Add(Copy(CDSClientesENDERECO_ENTREGA.AsAnsiString,1,30)
+ +
Copy(CDSClientesBAIRRO_ENTREGA.AsAnsiString,1,20)
+ +
Copy(CDSClientesTELEFONE_ENTREGA.AsAnsiString,1,16));
for i := 0 to memoObs.Lines.Count - 1 do
begin
obs := obs + +memoObs.Lines.Strings[i];
end;
cabecalho.Add(Copy(obs,1,60));
CDSDadosGrid.First;
while not CDSDadosGrid.Eof do
begin
listaItem.Add(StringOfChar( ,10 - Length(CDSDadosGridCODNOME.AsAnsiString))+ CDSDadosGridCODNOME.AsAnsiString+ +
StringOfChar( ,8 - Length(CDSDadosGridQTDE.AsAnsiString))+CDSDadosGridQTDE.AsAnsiString+
StringOfChar( ,5 - Length(CDSDadosGridUNI.AsAnsiString))+CDSDadosGridUNI.AsAnsiString+
StringOfChar( ,35 - Length(Copy(CDSDadosGridDESCRICAO.AsAnsiString,1,30)))+Copy(CDSDadosGridDESCRICAO.AsAnsiString,1,30)+
StringOfChar( ,15 - Length(FormatFloat(###,##0.00,CDSDadosGridVALUNIT.AsFloat)))+FormatFloat(###,##0.00,CDSDadosGridVALUNIT.AsFloat)+
StringOfChar( ,15 - Length(FormatFloat(###,##0.00,CDSDadosGridDAVAL.AsFloat)))+FormatFloat(###,##0.00,CDSDadosGridDAVAL.AsFloat)+
StringOfChar( ,15 - Length(FormatFloat(###,##0.00,CDSDadosGridVALTOTAL.AsFloat)))+FormatFloat(###,##0.00,CDSDadosGridVALTOTAL.AsFloat)
);
CDSDadosGrid.Next;
end;
parcela := 0;
CDSPagamento.First;
while not CDSPagamento.Eof do
begin
parcela := parcela + 1;
CDSPagamento.Next;
end;
pagamentos.Add(IntToStr(parcela)+ X );
pagamentos.Add(lblSubTotal.Caption);
pagamentos.Add(edtTotal.Text);
castelo(cabecalho,listaItem,pagamentos);
impressao.Add(cabecalho.Text);
impressao.Add(listaItem.Text);
impressao.Add(pagamentos.Text);
impressao.SaveToFile(C:\impressaoCastelo.txt);
end;
except
end;
end;Guilherme
Curtir tópico
+ 0Posts
12/06/2012
Deivison Melo
AssignPrn(c:\seu_arquivo_txt.txt);
Gostei + 0
12/06/2012
Guilherme
imprime direto na impressora
Gostei + 0
12/06/2012
Joel Rodrigues
Gostei + 0
12/06/2012
Guilherme
Pode me dar um exemplo????
acho que não entendi muito bem!!!!
Gostei + 0
12/06/2012
Joel Rodrigues
var P : TextFile; begin AssignFile(P, ´LPT1´); ReWrite(P); Writeln(P, ´Testando impressão...´); Writeln(Q, ´E´+#13); CloseFile(P); end;
O código é autoexplicativo.
Gostei + 0
13/06/2012
Guilherme
obrigado!!!!!!!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)