Impressora não fiscal.
Galera,
Preciso que minha aplicação carregue o arquivo Dll da impressora, de acordo com o modelo definido no sistema.
Bom, estou desenvolvendo um programa PDV e pretendo trabalhar com vários modelos de impressoras não fiscais. Mas quero que o usuario selecione o modelo de impressora e o sistema carregue as funcoes da dll especifica daquele modelo.
Para isto eu criei algumas chaves no windows com o nome da dll para cada tipo de modelo de impressora que meu sistema vai disponibilizar.
As dll possuem as seguintes funçoes como exemplo:
Impressora MP20CI da bematech.
function FechaPorta: integer; stdcall; far; external ´MP2032.DLL´;
function BematechTX(BufTrans: string): integer; stdcall; far; external ´MP2032.DLL´;
function ComandoTX(BufTrans: string; TamBufTrans: integer): integer; stdcall; far; external ´MP2032.DLL´;
etc...
Estas funcoes são chamadas dentro do módulo de venda para por exemplo: Imprimir algo na impressora, chamo a funcao BematechTX, para fechar a porta de comunicação dela, chamo a funcao FechaPorta.
Espero que tenha explicado o que desejo.
Gostaria de saber como fazer isto, pois estou sem idéia.
Agradeço a todos que ajudarem.
Objetiva Creator.
Preciso que minha aplicação carregue o arquivo Dll da impressora, de acordo com o modelo definido no sistema.
Bom, estou desenvolvendo um programa PDV e pretendo trabalhar com vários modelos de impressoras não fiscais. Mas quero que o usuario selecione o modelo de impressora e o sistema carregue as funcoes da dll especifica daquele modelo.
Para isto eu criei algumas chaves no windows com o nome da dll para cada tipo de modelo de impressora que meu sistema vai disponibilizar.
As dll possuem as seguintes funçoes como exemplo:
Impressora MP20CI da bematech.
function FechaPorta: integer; stdcall; far; external ´MP2032.DLL´;
function BematechTX(BufTrans: string): integer; stdcall; far; external ´MP2032.DLL´;
function ComandoTX(BufTrans: string; TamBufTrans: integer): integer; stdcall; far; external ´MP2032.DLL´;
etc...
Estas funcoes são chamadas dentro do módulo de venda para por exemplo: Imprimir algo na impressora, chamo a funcao BematechTX, para fechar a porta de comunicação dela, chamo a funcao FechaPorta.
Espero que tenha explicado o que desejo.
Gostaria de saber como fazer isto, pois estou sem idéia.
Agradeço a todos que ajudarem.
Objetiva Creator.
Objetivacreator
Curtidas 0
Respostas
Gandalf.nho
09/12/2004
Você já tentou dar uma olhada no projeto AcBr? Pode ser que ajude...
[url]http://acbr.sourceforge.net/[/url]
[url]http://acbr.sourceforge.net/[/url]
GOSTEI 0
Dopi
09/12/2004
Apenas para complementar...
O componente ACBrECF possui um modelo chamado ´ecfNaoFiscal´ que ´emula´ um ECF em todos os comandos suportados pelo ACBrECF, desta maneira, voce pode manter o mesmo código para uma Impressora Fiscal (ECF) ou para uma impressora comum (paralela ou serial)...
O nivel de semelhança a um ECF é bem razoavel... (tem até Leitura X e Red.Z)... A ´memoria´ do ECF virtual é um arquivo INI.
Mas cuidado com o uso de Impressoras Não fiscais.... pela legislação atual os programadores podem ser co-responsabilizados em casos de sonegação.... Use esse recurso apenas se o seu cliente NAO for obrigado ao uso do ECF.
O componente ACBrECF possui um modelo chamado ´ecfNaoFiscal´ que ´emula´ um ECF em todos os comandos suportados pelo ACBrECF, desta maneira, voce pode manter o mesmo código para uma Impressora Fiscal (ECF) ou para uma impressora comum (paralela ou serial)...
O nivel de semelhança a um ECF é bem razoavel... (tem até Leitura X e Red.Z)... A ´memoria´ do ECF virtual é um arquivo INI.
Mas cuidado com o uso de Impressoras Não fiscais.... pela legislação atual os programadores podem ser co-responsabilizados em casos de sonegação.... Use esse recurso apenas se o seu cliente NAO for obrigado ao uso do ECF.
GOSTEI 0