Buscar

Emitindo uma nota fiscal ou um boleto bancário

Código

//Nota Fiscal

procedure TFmPedidos.btNotaClick(Sender: TObject);
var
  Valorbase:DOUBLE;
  valoricms:DOUBLE;
  CONTADOR:Integer;
  IMPRESSORA:TextFile;
 
begin
  {POSICIONA O PONTEIRO DA TABELA DE CLIENTES,
  EM RELAÇÃO À TABELA DE PEDIDOS}

  DmDados.tbClientes.FindKey([DMDADOS.Tbpedidosped_Cliente.Value]);
  {Relaciona a variável impressora com a
  lpt1: - Poderia ser LPT, COM1,// Servidor/impressora}

  AssignFile(IMPRESSORA,'LPT1:');
  {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', [ dmdados.tbClientesCli_Razao.Value]));
  { Imprime a CGC, alinhado à esquerda dentro de umaárea de 30 caracteres}
  Write(Impressora,Format('%-30s', [dmdados.tbClientesCli_CGC.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',[dmdados.tbClientesCli_Endereco.Value]));
  {Imprime Bairro, dentro de uma área de 35 carcateres}
  Write(Impressora,Format('%-35s',[dmdados.tbClientesCli_Bairro.Value]));
  { Imprime CEP, dentro de uma área de 15 carcateres}
  Write(Impressora,Format('%-15s', [dmdados.tbClientesCli_CEP.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', [dmdados.tbClientesCli_Cidade.Value]));
  { Imprime DD+Telefone, dentro de uma área de 30 caracteres}
  Write(Impressora,Format('%-30s',[dmdados.tbClientesCli_DDD.Value+' '+ dmdados.tbClientesCli_Fone1.Value]));
  { Imprime Estado (UF), dentro de uma área de 5 caracteres}
  Write(Impressora,Format('%-5s',[dmdados.tbClientesCli_Estado.Value]));
  { Imprime Inscrição Estadual, dentro de uma área de 25 caracteres}
  Write(Impressora,Format('%-25s',[dmdados.tbClientesCli_Inscricao.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}
  Dmdados.TbItens.First;
  { Início do Laço}
  While not (Dmdados.tbItens.Eof) do
  Begin
  { Imprime Código produto}
  Write(Impressora,Format('%-15s', [InttoStr(Dmdados.tbItensIT_Produto.Value)]));
  { Imprime Descrição do produto}
  Write(Impressora,Format('%-68s', [dmdados.TbitensProdutos.value]));
  { Imprime Quantidade Comercializada}
  Write(Impressora,Format('%12.2n',[Dmdados.tbItensIt_Quantidade.value]));
  { Imprime Preço Unitário produto}
  Write(Impressora,Format('%15.2m',[dmdados.tbitensit_valor.value]));
  { Imprime o valor Total do Item e salta uma linha}
  Writeln(Impressora,Format('&15.2f', [dmdados.tbItensValorItem.Value]));
  { Soma o valor Base de Cálculo do ICMS}
  Valorbase:=ValorBase + dmdados.tbItensValorItem.Value;
  { Próximo Item}
  Dmdados.Tbitens.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- dmdados.tbItens.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}
  Boleto bancário


 
procedure TFmGerRec.BtBoletaClick(Sender: TObject);
Var
  Impressora:TextFile;
 
begin
  AssignFile(Impressora,'LPT1:');
  Rewrite(Impressora);
  Writeln(impressora);
//Imprime Local de pagamento
  Write(impressora,Format('%-50s',[' (PAGAVEL EM QUALQUER BANCO ATE O VENCIMENTO)']));
//Imprime Data Vencto e pula para próxima linha
  Writeln (impressora,Format('%-20s',[''+DatetoStr(DmDados.TbcontasRecRec_DataVencto.Value)]));
  //pula três linhas
  Writeln(Impressora);
  Writeln(impressora);
  Writeln(impressora);
 
 //Imprime Data de Emissão e Número Documento e salta duas linhas
 
  Writeln(impressora,Format('%-50s',[''+DatetoStr(DmDados.TbcontasRecRec_DataEmissao.Value)]));
  Writeln(impressora,Format('%-52s',[''+InttoStr(DmDados.TbcontasRecRec_Numero.Value)]));
 
  Writeln(impressora);
 
 //Imprime valor do Documento e pula p/ Próxima linha
 
  Write(impressora, Format('%-55s',[ ' ']));
  Writeln(impressora, Format('%-8.2m',[DmDados.TbContasRecRec_Valor.Value]));
 
 
 //Pula duas linhas
  Writeln(impressora);
  Writeln(impressora);
 
 //Imprime informações de Responsabilidade do Cedente
 
  Writeln(impressora, Format('%-50s',[' Neste Espaco Voce pode imprimir o Texto']));
  Writeln(impressora, Format('%-50s',[' De Responsabilidade do Cedente, comum em ']));
  Writeln(impressora, Format('%-50s',[' Diversos Bancos,Ex: ']));
  Writeln(impressora, Format('%-50s',[' -Cobrar Juros de 10%/Mes Apos Vencimento']));
 
 // Pula duas Linhas
 
 WriteLn(impressora);
 Writeln(impressora);
 
 //imprime informações do Sacado
 
  Writeln(impressora, Format('%-50s',[''+DmDados.TbcontasRecRazao.Value+'-CGC/CPF'+Dmdados.TbContasRecCgc.Value]));
  Writeln(impressora, Format('%-50s',[''+DmDados.TbContasRecEndereco.Value]));
  Writeln(impressora, Format('%-50s',[' CEP'+DmDados.TbContasRecCEP.Value+''+Dmdados.TbContasRecCidade.Value+''+ Dmdados.TbContasRecEstado.Value]));
 
//Pula três linhas
  Writeln(impressora);
  Writeln(impressora);
  Writeln(impressora);
  CloseFile(impressora);
end;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 12/06/03
Por: Felipe Monteiro
Visualizada: 11160 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009