problemas com emulador de cupon fiscal
pessoal estou com o seguinte problema.
estou colocando cupon fiscal em meu sistema de venda. mas estouo tendo problemas com o emulador de impressora do cupon fiscal e o seguinte
o programa abree o cupon normalmente , mas quando vou lançar os itens ele cancela o cupon.
outra observação. diz qued a porcentagem de icms nao esta cadastrado na maquina. facoi io registro do icms na maquina atraves do comando retirado da propria bematech , tudo funciona normalmente mas nao registra os 17% solicitado , quando oclico no botao para iniciar o processo a aliquota registrada e de 1%, O PROCESSO TODO e executado normalmente mas o ocomando troca a aliquota de 17 que eu solicitei para 1%, nao sei mais o que fazer.
preciso deste emulador fuincionando para poder acabar meu programa.
sera que alguem tem outro link para abaixar outro emulador.
ja peguei 2 da bematech e os dois dao o mesmo defeito, o interessante e que a programa abre o cupon e cancela normalmente , se fosse problema no componente ou no meu programa não faria isso, e o comando da venda foi retirado do exemplo que a bematch oferece.
me ajudem por favor
estou colocando cupon fiscal em meu sistema de venda. mas estouo tendo problemas com o emulador de impressora do cupon fiscal e o seguinte
o programa abree o cupon normalmente , mas quando vou lançar os itens ele cancela o cupon.
outra observação. diz qued a porcentagem de icms nao esta cadastrado na maquina. facoi io registro do icms na maquina atraves do comando retirado da propria bematech , tudo funciona normalmente mas nao registra os 17% solicitado , quando oclico no botao para iniciar o processo a aliquota registrada e de 1%, O PROCESSO TODO e executado normalmente mas o ocomando troca a aliquota de 17 que eu solicitei para 1%, nao sei mais o que fazer.
preciso deste emulador fuincionando para poder acabar meu programa.
sera que alguem tem outro link para abaixar outro emulador.
ja peguei 2 da bematech e os dois dao o mesmo defeito, o interessante e que a programa abre o cupon e cancela normalmente , se fosse problema no componente ou no meu programa não faria isso, e o comando da venda foi retirado do exemplo que a bematch oferece.
me ajudem por favor
Edson Melo
Curtidas 0
Respostas
Claudia Nogueira
18/12/2012
Uso esse emulador há muitos anos e nunca tive esse problema.
O problema dele é que vira e mexe você tem que Restaurar as Configurações Iniciais, e sendo assim cadastrar as alíquotas novamente.
Resumindo, sempre que o ECF der a mensagem: ECF INOPERANTE, você tem que restaurar as configurações iniciais e cadastrar tudo novamente.
Baixa o exemplo pra delphi da bematech e cadastra a alíquota por lá. Você não precisa passar os decimais, passa só 17 e se certifique de estar cadastrando ICMS e não ISS. Depois de cadastrar tire uma leitura x.
O emulador não funciona muito bem se no .ini estiver configurado como emulador. Pra ele funcionar melhor, no .ini ele tem que estar como se fosse uma ECF normal, aí você baixa um programa chamada VSPE que emula porta COM.
Com o VSPE instalado, antes de abrir o emulador você abre o VSPE clica no menu Device>Create.
Device Type: Connector e clica em avançar.
Em Virtual Serial Port ele já vai configurar automático e clica em concluir.
Feito isso você abre o emulador da bematech e clica com o botão direito e clica em porta serial.
Configura a mesma porta que o VSPE criou.
Depois clica com o botão direito novamente e clica em Restaurar as Configurações Iniciais.
Depois com o botão direito novamente e clica em Ligar.
Aí clica 9 vezes no botão ligar, até destravar.
Feito isso abre o exemplo da bematech e cadastra a alíquota 17.
Depois tira uma leitura x e veja se entrou a alíquota.
Não esqueça, sempre que der ECF INOPERANTE, tem que fazer todo o procedimento novamente, e dá muito esse problema.
Não se esqueça de deixar assim EmulMFD=0 no .ini da bematech.
O problema dele é que vira e mexe você tem que Restaurar as Configurações Iniciais, e sendo assim cadastrar as alíquotas novamente.
Resumindo, sempre que o ECF der a mensagem: ECF INOPERANTE, você tem que restaurar as configurações iniciais e cadastrar tudo novamente.
Baixa o exemplo pra delphi da bematech e cadastra a alíquota por lá. Você não precisa passar os decimais, passa só 17 e se certifique de estar cadastrando ICMS e não ISS. Depois de cadastrar tire uma leitura x.
O emulador não funciona muito bem se no .ini estiver configurado como emulador. Pra ele funcionar melhor, no .ini ele tem que estar como se fosse uma ECF normal, aí você baixa um programa chamada VSPE que emula porta COM.
Com o VSPE instalado, antes de abrir o emulador você abre o VSPE clica no menu Device>Create.
Device Type: Connector e clica em avançar.
Em Virtual Serial Port ele já vai configurar automático e clica em concluir.
Feito isso você abre o emulador da bematech e clica com o botão direito e clica em porta serial.
Configura a mesma porta que o VSPE criou.
Depois clica com o botão direito novamente e clica em Restaurar as Configurações Iniciais.
Depois com o botão direito novamente e clica em Ligar.
Aí clica 9 vezes no botão ligar, até destravar.
Feito isso abre o exemplo da bematech e cadastra a alíquota 17.
Depois tira uma leitura x e veja se entrou a alíquota.
Não esqueça, sempre que der ECF INOPERANTE, tem que fazer todo o procedimento novamente, e dá muito esse problema.
Não se esqueça de deixar assim EmulMFD=0 no .ini da bematech.
GOSTEI 0
Edson Melo
18/12/2012
claudia no exemplo que tinho a aliquota seria passada como 1700, sera que e esse o problema, pois quando usava o delph 7 funcionava bem, e é como te falei faco tudo , abro cupon e cancelo , so nao vendo e programo a liquota, isso tudo com o mesmo exemplo que funcionava com o delphi 7. vou ver sua proposta e se der te respondo.
mas ta esquisito, funcionava tudo, agora so funciona a metade, so porque mudei o delphi que era 7 e agora e o 2010
ate breve
mas ta esquisito, funcionava tudo, agora so funciona a metade, so porque mudei o delphi que era 7 e agora e o 2010
ate breve
GOSTEI 0
Edson Melo
18/12/2012
claudia temtei o que voce me sugeril, menos o emulador de portas
e continua nao funcionando so registra 1% e aliquota de icms coloquei 1700 coloquei 17 e nada so registra 1%
acho que deve ser algum bug no emulador com relacao ao delphi 2010, pois no 7 funcionava tudo perfeito.
acho que o erro nao e no comando e nem no programa , pois ele registra a aliquota so que so ta aceitando 1%
para qualquer duvida te mando abaixo as linhas de comando que estou usando para registrar a aliquota :
obs : esta rotina foi tirada direto da bematech, do seu help da impressora
procedure TFrm_VendaRapida.SpeedButton7Click(Sender: TObject);
VAR cValor : sTRING;
opc :integer;
iRetorno: Integer; // Variável com o retorno da função
iACK, iST1, iST2: Integer; // Variáveis com o retorno do Status da Impressora
begin
ShowMessage('Na maioria dos ECFs este comando somente é aceito quando'+#13+
'o Movimento não foi iniciado, ou seja, após uma Redução Z'+#13+
'em Intervenção Técnica e antes de uma Venda ou Leitura X.');
<< as linhas acima foram colocadas por mim para avisar ao operador o que deve fazer >>
opc:=Application.MessageBox('Deseja Adicionar a Aliquota?','Pergunta do Sistema',Mb_YesNo + Mb_IconQuestion);
If opc=IdYes then begin
aguarde;
cValor := '1700'; > coloquei tambem 17 e nao funcionou
iRetorno := Bematech_FI_ProgramaAliquota(PAnsiChar(cValor),0); > era Pchar mudei para PAnsiChar por causa do delphi 2010
Analisa_iRetorno();
Retorno_Impressora();
pronto;
end;
end;
to pendendo mais para um bug do delphi ou de imcompatibilidade entre ambos, nao tem outra resposta, pois no 7 funcionava bem estas linhas
favor analizar e me ajudar
e continua nao funcionando so registra 1% e aliquota de icms coloquei 1700 coloquei 17 e nada so registra 1%
acho que deve ser algum bug no emulador com relacao ao delphi 2010, pois no 7 funcionava tudo perfeito.
acho que o erro nao e no comando e nem no programa , pois ele registra a aliquota so que so ta aceitando 1%
para qualquer duvida te mando abaixo as linhas de comando que estou usando para registrar a aliquota :
obs : esta rotina foi tirada direto da bematech, do seu help da impressora
procedure TFrm_VendaRapida.SpeedButton7Click(Sender: TObject);
VAR cValor : sTRING;
opc :integer;
iRetorno: Integer; // Variável com o retorno da função
iACK, iST1, iST2: Integer; // Variáveis com o retorno do Status da Impressora
begin
ShowMessage('Na maioria dos ECFs este comando somente é aceito quando'+#13+
'o Movimento não foi iniciado, ou seja, após uma Redução Z'+#13+
'em Intervenção Técnica e antes de uma Venda ou Leitura X.');
<< as linhas acima foram colocadas por mim para avisar ao operador o que deve fazer >>
opc:=Application.MessageBox('Deseja Adicionar a Aliquota?','Pergunta do Sistema',Mb_YesNo + Mb_IconQuestion);
If opc=IdYes then begin
aguarde;
cValor := '1700'; > coloquei tambem 17 e nao funcionou
iRetorno := Bematech_FI_ProgramaAliquota(PAnsiChar(cValor),0); > era Pchar mudei para PAnsiChar por causa do delphi 2010
Analisa_iRetorno();
Retorno_Impressora();
pronto;
end;
end;
to pendendo mais para um bug do delphi ou de imcompatibilidade entre ambos, nao tem outra resposta, pois no 7 funcionava bem estas linhas
favor analizar e me ajudar
GOSTEI 0
Edson Melo
18/12/2012
vou tentar esta opcao agora
<<< O emulador não funciona muito bem se no .ini estiver configurado como emulador. Pra ele funcionar melhor, no .ini ele tem que estar como se fosse uma ECF normal >>>
<<< O emulador não funciona muito bem se no .ini estiver configurado como emulador. Pra ele funcionar melhor, no .ini ele tem que estar como se fosse uma ECF normal >>>
GOSTEI 0
Claudia Nogueira
18/12/2012
Não é problema do emulador com a versão do delphi, pois eu uso essa mesma configuração.
Acabei de cadastrar aqui.
Eu tenho todos os modelos de ECF e também uso o emulador quando o suporte está usando.
Cadastrei no emulador agora.
No Delphi 2012 a função deve ser declarada assim:
E pra chamar:
Acabei de cadastrar aqui.
Eu tenho todos os modelos de ECF e também uso o emulador quando o suporte está usando.
Cadastrei no emulador agora.
No Delphi 2012 a função deve ser declarada assim:
function Bematech_FI_ProgramaAliquota( Aliquota: AnsiString; ICMS_ISS: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';
E pra chamar:
Var par1 : AnsiString; tipo : String; begin tipo := '0'; par1 := Trim(FloatTOStrf(17.00,ffNumber,10,2)); Bematech_FI_ProgramaAliquota(par1, StrToInt(tipo)); end;
GOSTEI 0
Edson Melo
18/12/2012
claudia sua dica foi 100 aproveitada , funcionou bem, gracas a deus tava em ponto de ficar doido.
so queria uma outra ajuda sua , como voce fez acima, me mande o comando para vender item e tambem fechar cupon
tentei alterar o vender itens com base no que voce me mandou, ate consegui, mas nao sae o nome do item , a qtd e o preco, estes itens no impresso saem em branco, me ajude por favor. acho qur com base no que voce me mandar, vou conseguir alterar o resto.
voce por acaso sabe de algum tutorial sobre estas mudancas para mim ler.
obrigado
so queria uma outra ajuda sua , como voce fez acima, me mande o comando para vender item e tambem fechar cupon
tentei alterar o vender itens com base no que voce me mandou, ate consegui, mas nao sae o nome do item , a qtd e o preco, estes itens no impresso saem em branco, me ajude por favor. acho qur com base no que voce me mandar, vou conseguir alterar o resto.
voce por acaso sabe de algum tutorial sobre estas mudancas para mim ler.
obrigado
GOSTEI 0
Edson Melo
18/12/2012
cluadia ja consegui rresolver todos os problemas . mas obrigado, achei um artigo que explica toda a tranferencia do delphi 7 para 2010
valeu
valeu
GOSTEI 0