Autor Tópico: ALguem ja roda BEMATECH fiscal ae?  (Lida 8507 vezes)

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
ALguem ja roda BEMATECH fiscal ae?
« Online: MARçO 08, 2012, 02:52:45 pm »
Ola amigos

        Estou tentando fazer a bematech funcionar mas ta dificil. Consigo enviar os comandos porem nao consigo obter retornos de funcoes que trazem informacoes, como por ex: Numero do proximo cupom a ser emitido.

estou fazendo desta forma

Ack, Stc1, Stc2, Stc3 are int = 0
sfNumcup is fixed string on 7 = " "

API("C:\Windows\System32\BemaFI32.dll","Bematech_FI_NumeroCupom",&sfNumcup)
Info(sfNumcup)

o sfNumCup sempre vem vazio.

Nao sei se é assim, pois na daruma eu faço desta forma e esta normal... mas a bematech nao funciona nem com reza. Tentei fazer isso ae dum monte de jeito e nada...

Se alguem ja fez a bematech rodar estas funcoes de retorno e puder dar um helps...

obrigado amigos

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #1 Online: MARçO 13, 2012, 03:28:14 pm »
Amigos

        Nao posso crer que os amigos aqui nenhum trabalha com ECF. Vi topicos sobre automacao comercial e ecf ... falando da propria bematech. Cara nao consigo de forma alguma pegar o retorno dela .... é alguma coisa com o parametro passado para ela...

alguem conseguiu pegar o Numero do cupom fiscal a ser emitido na bematech?


JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #2 Online: MARçO 13, 2012, 03:59:55 pm »
Não temos sistema de automação em WD.
Nosso ECF é desenvolvido em Clarion, caso contrário o ajudaria.

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #3 Online: MARçO 13, 2012, 04:05:59 pm »
é velho ,... acho q vou ter q desistir do windev para ecf mesmo... vou ter q fazer em clipper ou outra linguagem... no windev ta foda fazer rolar a bematech!

JacquesBica

  • Full Member
  • ***
  • Mensagens: 197
  • Karma: +0/-0
  • Boas cercas fazem bons vizinhos
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #4 Online: MARçO 13, 2012, 05:50:37 pm »
Nós temos ECF não homologado em Clarion faz anos.
A partir do ano passado fizemos uma parceria com a IDBrasil e adotamos o PAF/ECF deles totalmente integrado ao nosso ERP. Nunca mais nos incomodamos com isso. O custo é relativamente baixo e o suporte excelente.

easwsistemas

  • Newbie
  • *
  • Mensagens: 37
  • Karma: +0/-0
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #5 Online: MARçO 23, 2012, 06:30:47 pm »
Meu amigo:

Declara a variável como string pascal, dá uma olhada no help.
Tenho ECF no Windev em Bematech, Daruma, Epson e Elgin sem problemas, e estou homologando em alguns dias a Dataregis.

Abraços

Emílio Ãvila
EASW Sistemas

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #6 Online: MARçO 26, 2012, 08:56:30 am »
Ola amigo

             ja fiz isto porem o retorno nao vem. O Amigo poderia me dar um exemplo do comando para pegar o numero do proximo cupom, pq o meu problema esta somente nisto em jogar para variaveis o retorno do comando da dll. Estou conseguindo enviar comandos e ela faz, como leitura x reducoes e tal... somente comandos q preciso alimentar variaveis que nao esta indo legal!

Agradeco ja pela info e pela ajuda

obrigado

Sergio Kreutz

  • Newbie
  • *
  • Mensagens: 14
  • Karma: +0/-0
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #7 Online: Outubro 06, 2014, 11:08:11 am »
Preazados,

alguém conseguiu resolver esse problema, da DLL não retornar os valores requisitados?
Eu estou com esse problema e não consigo resolvê-lo.
Algum dos colegas poderia me dar uma força?
Obrigado e grande abraço!

Sergio Kreutz

juniorschroder

  • Full Member
  • ***
  • Mensagens: 103
  • Karma: +0/-0
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #8 Online: Outubro 06, 2014, 12:16:15 pm »
Sergio, aqui na empresa temos solução de frente de caixa toda em WD.

O que você deve ter atenção é:

 - No WD existem 2 formas de usar DLLs (CallDLL32() ou API())

o uso da API() é recomendado caso vc vai acessar alguma coisa na API do windows (dlls do windows ex.: USER32, KERNEL32 ...), caso contrario é melhor usar a CallDLL32.

na tua aplicação, antes de tudo carregue a DLL em memória com a função LoadDLL(), aí então é so chamar as funções dela com o CallDLL32, outro ponto importante é o tamanho das variáveis a serem passadas, como existem casos na dll da bematech por ex. a função que retorna o número do cupom (Bematech_FI_NumeroCupom) essa função irá acessar uma variável da tua aplicação atilizando ponteiros, tua variavel tem de estar de acordo com o esperado pela dll, nessa função em questão pela documentação da bematech, ela espera uma string de 6 caracteres, logo você deve iniciar uma string com 6 caracteres em branco para funcionar. Ex:

Código: [Selecionar]
LoadDLL("BemaFI32.dll")
nRetorno is int
sNroCupom is string

sNroCupom = Complete(" ",6)
nRetorno = CallDLL32("BemaFI32.dll","Bematech_FI_NumeroCupom",sNroCupom)

Sergio Kreutz

  • Newbie
  • *
  • Mensagens: 14
  • Karma: +0/-0
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #9 Online: Outubro 06, 2014, 03:37:09 pm »
Prezado Junior, boa tarde.

Olha só: os comandos estavam CORRETOS. E o conceito também (carregar a DLL e tals).
O que estava errado, por incrível que pareça, era o Bemafi32.INI.
Batí cabeça por alguns dias e hoje meu amigo pessoal e colega de windev Paulo Viana me deu uma força nesse assunto. Na verdade, ele resolveu o problema.
Aqui fica então a solução para os menos avisados:

As seguintes variáveis do arquivo Bemafi32.INI devem estar "setadas" como:

Retorno=0
ControlePorta=1

Feito isso, vai que é uma beleza.
Agradeço realmente sua colaboração. Grande abraço!

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:ALguem ja roda BEMATECH fiscal ae?
« Responder #10 Online: Outubro 07, 2014, 11:05:41 am »
PROCEDURE Get_NumCupom()
sfMResp is fixed string on 30
IF gnEcf = 1 THEN
   API("DarumaFrameWork.dll","rRetornarInformacao_ECF_Daruma","26",&sfMResp)
   gsNumcup = NoSpace(sfMResp)
   ELSE IF gnEcf = 2 OR gnEcf = 5 THEN
      sfNCup is fixed string on 6
      nCup is int
      API("BemaFI32.dll","Bematech_FI_NumeroCupom",&sfNCup)
      nCup = sfNCup
      sfMResp = NumToString(nCup)
      gsNumcup = sfMResp
END