Fórum Empressão Nota Fiscal #135956
12/02/2003
0
Gostaria de que mostracem um exemplo como faço para imprimir uma nota fiscal usando Quick Report.
Anonymous
Curtir tópico
+ 0
Responder
Posts
12/02/2003
Anonymous
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...
Muito Obrigado...
Responder
Gostei + 0
13/02/2003
Lobo Astuto
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.
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)