Empressão Nota Fiscal

Delphi

12/02/2003

Gostaria de que mostracem um exemplo como faço para imprimir uma nota fiscal usando Quick Report.


Anonymous

Anonymous

Curtidas 0

Respostas

Anonymous

Anonymous

12/02/2003

Gostaria de que mostracem, um exemplo como faço para imprimir uma nota fiscal, usando Quick Report. se possivel usando Banco de Dados em Access.
Muito Obrigado...


GOSTEI 0
Lobo Astuto

Lobo Astuto

12/02/2003

Veja se isso te ajuda

Tirado do 750 dias
587 - Emissao de NF Nota Fiscal (UTILIZEI O BITBTN)Ocódigo começa abaixo.

------------------------------------------------------------------------------------------------------------------------------

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 tres Linhas}
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
{ Fecha a porta de impressão}
System.Close(Impressora);
end; { final da procedure}

eu achei espetacular. espero que goste.


GOSTEI 0
POSTAR