Impressao de nota fiscal

Delphi

14/04/2004

Bom tenho cliente que esta pedindo para fazer a impressao de nota fiscal. ele ja tem o modelo da nota fiscal. Como posso fazer para imprimir os dados clientes (tabela) , produtos corretamente dentro das linhas desenhada deste modelo de nota fiscal. Ele usa impressora Epson LX-300. Obrigado !!


walterfoliveira@hotmail.com


Walter Faria

Walter Faria

Curtidas 0

Respostas

Fer_nanda

Fer_nanda

14/04/2004

Eu fiz na base de testes...um chute mesmo...
Mas naum achei uma outra alternativa pra impressão em formulário pré-impresso


GOSTEI 0
Alex Maia

Alex Maia

14/04/2004

Caro amigo,
Para imprimir notas fiscais pré-impressas em matriciais fiz tudo na mão usando TPrinter. Acho que esta é uma boa alternativa para vc.
Até mais.


GOSTEI 0
Zottis

Zottis

14/04/2004

è Mais ou menos assim:

[b:000e25648d]uses[/b:000e25648d] windows,.... printers;


[b:000e25648d]procedure[/b:000e25648d] TPedidosclientes.PrintNFReport;
var
Valorbase:DOUBLE;
valoricms:DOUBLE;
CONTADOR:Integer;
IMPRESSORA:TextFile;
begin
{POSICIONA O PONTEIRO DA TABELA DE CLIENTES,
EM RELAÇÃO À TABELA DE PEDIDOS}
Mastdados.Clientes.FindKey([Mastdados.PedidoPaiClienteNo.Value]);
{Relaciona a variável impressora com a lpt1: - Poderia ser LPT, COM1,// Servidor/impressora}
AssignFile(IMPRESSORA,´LPT1:´);
// AssignFile(IMPRESSORA,´\\Vendas\printer´);
{abre a porta da impressão }
Rewrite(IMPRESSORA);
{envia caractere de controle para comprimir a impressão}
Write(IMPRESSORA);
{ Imprime o caractere ´x´ (marcando Nota de Saída) e salta para próxima
linha}
Writeln(Impressora,Format(´¬80s´,[´x´]));
{ salta duas linhas}
Writeln(impressora);
Writeln(Impressora);
{ Imprime a string ´Vendas´, alinhado à esquerda´-´ dentro de uma área de
quarenta caracteres}
Write(Impressora,Format(´¬-40s´,[´Vendas´]));
{ Imprime a string ´5.12´, e salta para próxima linha}
WriteLn(Impressora,Format(´¬10s´, [´5.12´]));
{ Salta duas linhas}
Writeln(impressora);
Writeln(Impressora);
{ ---- Impressão dos Dados do Consumidor-----}
{ Imprime a Razão Social, alinhado à esquerda dentro de uma área de 90
caracteres}
Write (Impressora,Format(´¬-90s´, [Mastdados.ClientesRazaosocial.Value]));
{ Imprime a CGC, alinhado à esquerda dentro de umaárea de 30 caracteres}
Write(Impressora,Format(´¬-30s´, [Mastdados.ClientesCNPJRG.Value]));
{ Imprime a Data de Emissão, baseada na data atual e salta para próxima
linha}
Writeln(Impressora,DatetoStr(Date));
{ Salta uma linha}
Writeln(Impressora);
{ Imprime Endereço,alinhado à esquerda´-´ dentro de uma área de 70 carcateres}
Write(Impressora,Format(´¬-70s´,[Mastdados.ClientesEndereco.Value]));
Write(Impressora,Format(´¬-70s´,[Mastdados.ClientesCasaNo.Value]));
{Imprime Bairro, dentro de uma área de 35 carcateres}
Write(Impressora,Format(´¬-35s´,[Mastdados.ClientesBairro.Value]));
{ Imprime CEP, dentro de uma área de 15 carcateres}
Write(Impressora,Format(´¬-15s´, [Mastdados.ClientesCEP.Value]));
{Imprime a Data de Saída, baseada na Hora Atual e Salta para próxima Linha}
Writeln(Impressora,DatetoStr(Date));
{ Salta uma linha}
Writeln(Impressora);
{ Imprime Munícipio, dentro de uma área de 60 caracteres}
Write(Impressora, Format(´¬-60s´,[Mastdados.ClientesCidade.Value]));
{ Imprime DD+Telefone, dentro de uma área de 30 caracteres}
// Write(Impressora,Format(´¬-30s´,[Mastdados.ClientesCli_DDD.Value+´ ´+ Mastdados.clientesCli_Fone1.Value]));
Write(Impressora,Format(´¬-30s´,[Mastdados.Clientesfone.Value]));
{ Imprime Estado (UF), dentro de uma área de 5 caracteres}
Write(Impressora,Format(´¬-5s´,[Mastdados.clientesEstado.Value]));
{ Imprime Inscrição Estadual, dentro de uma área de 25 caracteres}

Write(Impressora,Format(´¬-25s´,[Mastdados.clientesiNSCCPF .value]));
{ Imprime a Hora de Saída, baseada na Hora Atual e Salta para próxima Linha}
Writeln(Impressora,TimetoStr(time));
{ Salta três linhas}
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
{----- Fase de Emissão dos Itens da Nota -----}
{ Zero variáveis}
Valorbase:=0;
valoricms:=0;
{ Move o ponteiro de registro da tabela de Itens para o primeiro}
Mastdados.pedidoCria.First;
{ Início do Laço}
While not (Mastdados.pedidoCria.Eof) do
Begin
{ Imprime Código produto}
Write(Impressora,Format(´¬-15s´,[FloattoStr(Mastdados.pedidoCriaProdutoNo.Value)]));
{ Imprime Descrição do produto}
Write(Impressora,Format(´¬-68s´, [Mastdados.pedidoCriaProduto.value]));
{ Imprime Quantidade Comercializada}
Write(Impressora,Format(´¬12.2n´,[Mastdados.pedidoCriaQuantia.value]));
{ Imprime Preço Unitário produto}
Write(Impressora,Format(´¬15.2m´,[Mastdados.pedidoCriaUnitario.value]));
{ Imprime o valor Total do Item e salta uma linha}
Writeln(Impressora,Format(´&15.2f´, [Mastdados.pedidoCriatotal.Value]));
{ Soma o valor Base de Cálculo do ICMS}
Valorbase:=ValorBase +Mastdados.pedidoCriaTotal.Value;
{ Próximo Item}
Mastdados.pedidoCria.next;
end;
{ laço de Itens}
{ Salta o núemro de linhas necessárias para completar o espaço restante de itens}
For Contador:= 1 to (20-Mastdados.pedidoCria.recordCount)do
Writeln(Impressora);
{ Salta duas Linhas}
Writeln(Impressora);
Writeln(Impressora);
{ Imprime o valor total dos produtos e salta uma linha}
Writeln(Impressora,Format(´¬120.2f´,[ValorBase]));
{ Salta duas linhas}
Writeln(Impressora);
Writeln(Impressora);
{ Cálculo do Imposto - baseada na Alíquota de 12¬}
valoricms:=(Valorbase*0.12);
{ Imprime Valor base}

Write(Impressora,Format(´¬30.2f´,[Valorbase]));
{ Imprime Valor ICMS e salta ´p/ próxima linha}
Write(Impressora, Format(´¬30.2f´,[ ValorICMS]));
{ Salta uma linha}
Writeln(Impressora);
{ Imprime o valor total da Nota e salta uma linha}
Writeln(Impressora,Format(´¬120.2f´,[Valorbase]));
{ Salta duas linhas}
Writeln(Impressora);
Writeln(Impressora);
{ Imprime informações transportador}
Writeln(Impressora,Format(´¬-30s´, [´o mesmo´]));
{ salta tr6es Linhas}
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
{ Fecha a porta de impressão}
System.Close(Impressora);
end; { final da procedure}


GOSTEI 0
POSTAR