quarta-feira, 17 de junho de 2009

Emitindo uma nota fiscal ou um boleto bancário

//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;

Nenhum comentário:

Postar um comentário