impressora fiscal
Ola pessoal.
Como eu faço para mandar os dados de uma tabela para imprimir numa impressora fiscal.
Valeu
Como eu faço para mandar os dados de uma tabela para imprimir numa impressora fiscal.
Valeu
Radolpho
Curtidas 0
Respostas
Aroldo Zanela
03/08/2004
Colega,
Você não pode simplesmente mandar imprimir os dados de uma tabela numa impressora fiscal, eis que as vendas devem ser registradas de forma concomitante, ou seja, passa o produto pelo leitor e comanda a impressão. Vendas não concomitantes precisam de autorização do fisco local.
Acesse o site do fornecedor de sua impressora e obtenha toda a documentação necessária, leia com bastante atenção e depois faça os testes com os exemplos fornecidos. Qualquer dúvida que não esteja clara na documentação, poste aqui novamente.
Você não pode simplesmente mandar imprimir os dados de uma tabela numa impressora fiscal, eis que as vendas devem ser registradas de forma concomitante, ou seja, passa o produto pelo leitor e comanda a impressão. Vendas não concomitantes precisam de autorização do fisco local.
Acesse o site do fornecedor de sua impressora e obtenha toda a documentação necessária, leia com bastante atenção e depois faça os testes com os exemplos fornecidos. Qualquer dúvida que não esteja clara na documentação, poste aqui novamente.
GOSTEI 0
Bacalhau
03/08/2004
A questão pode ser dividida em duas:
1. Inserir na tabela
2. Enviar para a impressora
A inserção na tabela não parece ser o problema; na questão 2 podemos usar uma técnica antiga. Se a impressão for para a ´lpt1´ (por exemplo) podemos fazer isto:
var L : textfile;
assignfile(L,´LPT1´);
write(L,´teste´); // envia um texto
writeln(L,table1.fieldbyname(´Produto´).asstring); // valor no registo
writeln(L,#2750); // caracteres de controle
closefile(L); // não esquecer esta linha
É claro que na prática, é um pouco mais complexo. Precisamos ´encaixar´ tudo direito e a porta pode não ser a LPT1. Mas deixo isso como trabalho pró colega. Se houver dúvidas, diz.
Abraço
bacalhau
1. Inserir na tabela
2. Enviar para a impressora
A inserção na tabela não parece ser o problema; na questão 2 podemos usar uma técnica antiga. Se a impressão for para a ´lpt1´ (por exemplo) podemos fazer isto:
var L : textfile;
assignfile(L,´LPT1´);
write(L,´teste´); // envia um texto
writeln(L,table1.fieldbyname(´Produto´).asstring); // valor no registo
writeln(L,#2750); // caracteres de controle
closefile(L); // não esquecer esta linha
É claro que na prática, é um pouco mais complexo. Precisamos ´encaixar´ tudo direito e a porta pode não ser a LPT1. Mas deixo isso como trabalho pró colega. Se houver dúvidas, diz.
Abraço
bacalhau
GOSTEI 0
Rafs
03/08/2004
Caro radolpho,
Com relação ao que o bacalhau escreveu, aqui não temos impressoras fiscais que sejam ligadas na porta LPT, somente seriais.
Assim como Aroldo Zanela escreveu, solicite os manuais para os fabricantes e busque informações sobre as leis que as regem, pois é bem complexo o desenvolvimento de um sistema para trabalhar com impressoral fiscal.
É importante que se faça exatamente como rege a lei, pois antes de colocar no mercado você precisará homologar o software.
Com relação ao que o bacalhau escreveu, aqui não temos impressoras fiscais que sejam ligadas na porta LPT, somente seriais.
Assim como Aroldo Zanela escreveu, solicite os manuais para os fabricantes e busque informações sobre as leis que as regem, pois é bem complexo o desenvolvimento de um sistema para trabalhar com impressoral fiscal.
É importante que se faça exatamente como rege a lei, pois antes de colocar no mercado você precisará homologar o software.
GOSTEI 0
Bacalhau
03/08/2004
Rafs, o que escrevi mantém-se. Se são seriais, podemos executar primeiro um pequeno comando do DOS, para redireccionar as COMs.
MODE LPT1=COM2 ou na generalidade MODE LPTn=COMn
Isso permite a utilização do código que escrevi e parece-me simples de implementar
MODE LPT1=COM2 ou na generalidade MODE LPTn=COMn
Isso permite a utilização do código que escrevi e parece-me simples de implementar
GOSTEI 0
Koplin
03/08/2004
Salve!
Caro colega: Meu amigo baca nao deixa de ter razão... mas em se tratando de ECF, a coisa é mais complicada. Devido as restriçoes que estes equipamentos tem, o acesso é feito via dll´s que são fornecidas pelo fabricante. estas dll´s tem todos os comando específicos para comunicação com o ECF. Portanto, sugiro q vc se inteire da legislação pertinente a ECF´s e como o colega informou, acesse o site dos fabricantes para obter as dlls e documentação. Sugiro começar pela bematech que é a que está melhor documentada, onclusive com exemplos.
Caro colega: Meu amigo baca nao deixa de ter razão... mas em se tratando de ECF, a coisa é mais complicada. Devido as restriçoes que estes equipamentos tem, o acesso é feito via dll´s que são fornecidas pelo fabricante. estas dll´s tem todos os comando específicos para comunicação com o ECF. Portanto, sugiro q vc se inteire da legislação pertinente a ECF´s e como o colega informou, acesse o site dos fabricantes para obter as dlls e documentação. Sugiro começar pela bematech que é a que está melhor documentada, onclusive com exemplos.
GOSTEI 0
Bacalhau
03/08/2004
Completamente esmagado pelo colega koplin... :lol:
De facto concentrei-me só na questão técnica. De resto, nem poderia falar de legislação brasileira... :oops:
De facto concentrei-me só na questão técnica. De resto, nem poderia falar de legislação brasileira... :oops:
GOSTEI 0
Weber
03/08/2004
Mesmo que você esqueça a legislação...
Uma impressora Fiscal (ECF) só imprime alguma coisa se ela foi configurada para isto.
Por exemplo, a maioria delas só aceita a descrição do produto com até 29 caracteres, se você mandar mais de 29 caracteres a impressora simplesmente trava, (trava fiscalmente falando) essa venda (travada) só será destravada se esse cupom for cancelado ou complementado com os demais itens corretamente.
Sendo assim não é só imprimir em impressora fiscal, você terá que desenvolver rotinas como:
- Abertura (Leitura X) - Um unico comando, uma vez por dia
- Impressão de Cupom Fiscal - Dados da Venda
- Fechamento (Leitura Z) - Um unico comando, uma vez por dia, apos fazer um fechamento não é possivel efetuar mais vendas nesse dia. Não é possivel mesmo, ela trava totalmente.
- Leitura de Memoria Fiscal - Basta informar o intervalo de datas, as informações de vendas não seram buscadas no seu sistema a própria impressora grava as informações em sua memória, como se fosse um banco de dados próprio.
- Sintegra tipo 60 (aff, um saco fazer)
Dessa forma aconselho fazer como já foi dito acima, entre em contato com o fabricante da impressora que provavelmente eles teram algum programa exemplo para te passar.
Haaa, só mais uma coisa: Para imprimir cupom fiscal seu software tem que estar cadastrado na Receita Estadual.
Uma impressora Fiscal (ECF) só imprime alguma coisa se ela foi configurada para isto.
Por exemplo, a maioria delas só aceita a descrição do produto com até 29 caracteres, se você mandar mais de 29 caracteres a impressora simplesmente trava, (trava fiscalmente falando) essa venda (travada) só será destravada se esse cupom for cancelado ou complementado com os demais itens corretamente.
Sendo assim não é só imprimir em impressora fiscal, você terá que desenvolver rotinas como:
- Abertura (Leitura X) - Um unico comando, uma vez por dia
- Impressão de Cupom Fiscal - Dados da Venda
- Fechamento (Leitura Z) - Um unico comando, uma vez por dia, apos fazer um fechamento não é possivel efetuar mais vendas nesse dia. Não é possivel mesmo, ela trava totalmente.
- Leitura de Memoria Fiscal - Basta informar o intervalo de datas, as informações de vendas não seram buscadas no seu sistema a própria impressora grava as informações em sua memória, como se fosse um banco de dados próprio.
- Sintegra tipo 60 (aff, um saco fazer)
Dessa forma aconselho fazer como já foi dito acima, entre em contato com o fabricante da impressora que provavelmente eles teram algum programa exemplo para te passar.
Haaa, só mais uma coisa: Para imprimir cupom fiscal seu software tem que estar cadastrado na Receita Estadual.
GOSTEI 0
Rafs
03/08/2004
Rafs, o que escrevi mantém-se. Se são seriais, podemos executar primeiro um pequeno comando do DOS, para redireccionar as COMs.
MODE LPT1=COM2 ou na generalidade MODE LPTn=COMn
Isso permite a utilização do código que escrevi e parece-me simples de implementar
Realmente não sabia da possibilidade de realizar tal operação.
Mas fica ai, mais um adicional ao conhecimento.. :)
GOSTEI 0