Autor Tópico: Como fazer bematech com windev  (Lida 10357 vezes)

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Como fazer bematech com windev
« Online: MARçO 07, 2012, 05:22:37 pm »
Amigos

      INfelizmente vou ter que fazer esta bomba de impressora funcionar... alguem tem exemplos de como usar a dll da bematech?


flow amigos

Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Como fazer bematech com windev
« Responder #1 Online: MARçO 07, 2012, 05:40:29 pm »
a bematech disponibizou recentemente um assembly  em .net para subistituir as antigas dll deles, você baixa e registrar ela com GAC, acho que o proprio instalador dela ja faz isso.

depois vc vai no menu workshop do windev e vá no menu .net e clique em use .net assembly in project, selecione o arquivo e pronto, ele importa todas as classes para o projto

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:Como fazer bematech com windev
« Responder #2 Online: MARçO 07, 2012, 06:17:59 pm »
Obrigado Davi

Seria este arquivo ?

http://partners.bematech.com.br/suporte-recursos/downloads/?dltag=.net&sortby=hits

Baixei para instalar ... mas apareceram varias opcoes de dispositivos e nao sei oq instalar...

amanha vou ligar para o suporte deles para ver!

Obrigado

Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Como fazer bematech com windev
« Responder #3 Online: MARçO 08, 2012, 08:14:43 am »
esse mesmo o Bematech Flash Builder

de dispositivo não sei lhe dizer, mas eu acho que eu selecionei qualquer um ou generic text

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:Como fazer bematech com windev
« Responder #4 Online: MARçO 08, 2012, 09:35:02 am »
Ola davi

            Tentei mas ele diz que o documento nao é um WDSL valido, ele me abre com a opcao de carregar arquivos XMLs, eu escolho bematech_fiscal.xml e ele me da o retorno que mencionei. Sabes qual arquivo deveria usar, pois la tem varios?


Obrigado amigo e perdoe-me encher o saco com isso :)

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:Como fazer bematech com windev
« Responder #5 Online: MARçO 08, 2012, 09:43:38 am »
Achei

             Massssssaaa bixo! Agora uma outra duvida... da pra fazer isso com a dll da daruma será ? Outra coisa... como usar agora os comandos da impressora, qual a diferenca por ex: para pegar o numero do cupom fiscal a ser emitido? Não ha mais necessidade de declarar a dll no sistema entao certo? (loaddll)

Olha como ficou no projeto

http://www.4shared.com/photo/cSfrJ58g/tel_net.html?refurl=d1forum][IMG]http://dc541.4shared.com/img/cSfrJ58g/0.09466512011879702/tel_net.png

mais uma vez davi muito obrigado pela ajuda

Davi

  • Global Moderator
  • *****
  • Mensagens: 426
  • Karma: +0/-0
Re:Como fazer bematech com windev
« Responder #6 Online: MARçO 09, 2012, 12:02:07 pm »
Então..

Isso é um assembly .net vc importou.... ta pronto para uso... as classes e métodos, só chamar pelo nome como esta

Porem essa dll(assembly .net) vai ter que ser instalado e registrado no pc do cliente final ou por exemplo.

Se vc salvou elas na pasta windows, para rodar no seu cliente vai ter que estar na pasta windows também.

ou registrar elas pelo GAC com strong name, ai fica registrado pelo nome no pc... é um pouco chato no começo trabalhar com esses assembly mas funciona.

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Re:Como fazer bematech com windev
« Responder #7 Online: Janeiro 09, 2013, 11:07:32 am »
Pessoal,
Como faço para instanciar esses comando?

Por exemplo:
myItem is Item //Item do cupom fiscal

MyItem = Item.Create() // esse seria o comando em Delphi para criar o objeto, mas não sei como faço isso no windev.
MyItem.Codigo = edt_codigo //Essa linha deveria setar o código para a impressora, porem o MyItem.Codigo não surge pq não sei como criar o metodo.

Alguem poderia me auxiliar?

Grato,

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Re:Como fazer bematech com windev
« Responder #8 Online: Janeiro 09, 2013, 04:38:23 pm »
Por favor pessoal
Alguém poderia me ajudar nesse questão?

Preciso urgente.

Grato,

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:Como fazer bematech com windev
« Responder #9 Online: Janeiro 10, 2013, 10:17:42 am »
Cara como c ta fazendo? Eu uso a DLL da impressora, faço todos os comandos sempre com DLL!

Como vc esta usando?

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Re:Como fazer bematech com windev
« Responder #10 Online: Janeiro 10, 2013, 10:29:35 am »
Olá Maddog,

Sim, estou usando a DLL da impressora, mas não estou conseguindo.
Veja um exemplo:

//Imprimir()
//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)
API("C:\Windows\System32\BemaFI32.dll","Bematech_FI_AbreCupomMFD","000.000.000-00","Cliente Teste","R. Teste")
API("C:\Windows\System32\BemaFI32.dll","Bematech_FI_IniciaFechamentoCupomMFD","D","%","0000","")
API("C:\Windows\System32\BemaFI32.dll","Bematech_FI_EfetuaFormaPagamentoMFD","","50,00","1","A VISTA")
API("C:\Windows\System32\BemaFI32.dll","Bematech_FI_TerminaFechamentoCupom","Obrigado pela preferência")

Eu estou tentado fazer imprimir em uma impressora de virtual (emulador da Bematech). Eu queria saber, se eu tenho que gerar algum relatório antes, ou se a impressão é enviada direta para impressora.
Estou bem perdido mesmo. Gostaria de sua orientação se possível.

Grato,

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:Como fazer bematech com windev
« Responder #11 Online: Janeiro 10, 2013, 10:39:49 am »
Abertura do cupom
Código: [Selecionar]
IF sCpf = "" AND gbAbr_prvenda=False THEN
IF YesNo("DESEJA EMITIR CUPOM COM CPF DO CLIENTE ?") THEN
Open(WIN_cpfcli)
END
sCpf = LimparCarc(gsCpfcnpj)
END

xHret = API("BemaFI32.dll","Bematech_FI_AbreCupomMFD",sCpf,Left(gsNomecli,30),Left(gsEndcli,80))
nHreterro = VerErrosEcf()
IF nHreterro = 1 THEN
Error("Erro ao Abrir Cupom Fiscal")
RESULT False
//result true
ELSE
Get_NumCupom()
RESULT True
END

item
Código: [Selecionar]
IF Position(Qtd,",",1,FromBeginning) THEN
sTipqtd is string = "F"
qtdnum is string
qtdnum = QtdN + "" + RepeatString("0", (5 - Length(DecimalPart(QtdN)) ))
ELSE
sTipqtd= "I"
qtdnum = Qtd
END
sDes_pro is string = Left(DesPro,29)
hRet = API("BemaFI32.dll","Bematech_FI_VendeItem",CodPro,sDes_pro,Trb,sTipqtd,qtdnum,2,VlrUni,"$",VlrPda)
IF hRet = -3 THEN
Error("ALÃQUOTA DO PRODUTO NÃO DEFINIDA OU NAO CADASTRADA!")
RESULT False
ELSE IF hRet = -2
Error("PARÂMETRO INVÃLIDO NA FUNÇÃO")
RESULT False
ELSE IF hRet = -4
Error("O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.")
RESULT False
ELSE IF hRet = -5
Error("Erro ao abrir a porta de comunicação.")
RESULT False
END
nHreterro = VerErrosEcf()
IF nHreterro = 1 THEN
Error("Erro ao Enviar Ãtem para Venda no ECF!")
RESULT False
ELSE
RESULT True
END

Veja se lhe ajuda

flow

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Re:Como fazer bematech com windev
« Responder #12 Online: Janeiro 10, 2013, 11:13:52 am »
Maddog,
Fiz um resumão do que vc me mandou, pois não tenho todas as suas rotinas então tive que improvisar.
nRet is int
CodPro is int = 1
sDes_Pro is string = "Coca-Cola"
Trb is int = 1
sTipqtd is string = "A"
qtdnum is numeric = 4
VlrUni is real = "2,00"
VlrPda is real = "2,00"

nRet = API("BemaFI32.dll", "Bematech_FI_VendeItem",CodPro,sDes_Pro,Trb,sTipqtd,qtdnum,2,VlrUni,"$",VlrPda)

IF nRet = -3 THEN
   Error("ALÃQUOTA DO PRODUTO NÃO DEFINIDA OU NAO CADASTRADA!")
   RESULT False
ELSE IF nRet = -2
   Error("PARÂMETRO INVÃLIDO NA FUNÇÃO")
   RESULT False
ELSE IF nRet = -4
   Error("O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.")
   RESULT False
ELSE IF nRet = -5      
   Error("Erro ao abrir a porta de comunicação.")
   RESULT False
END   

Fui executar esse comando e deu o seguinte erro:
Runtime error caused by 'Bematech_FI_VendeItem', function of BemaFI32.dll DLL.

Tem alguma coisa errada aí?

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Re:Como fazer bematech com windev
« Responder #13 Online: Janeiro 10, 2013, 11:27:33 am »
Maddog,
Agora eu fiz de outra maneira.
Não deu erro, mas não imprimiu nada.

nRet = API("BemaFI32.dll", "Bematech_FI_VendeItem","123", "Caneta", "05", "I", "10", 2, "0,25", "%", "0000")

IF nRet = -3 THEN
   Error("ALÃQUOTA DO PRODUTO NÃO DEFINIDA OU NAO CADASTRADA!")
   RESULT False
ELSE IF nRet = -2
   Error("PARÂMETRO INVÃLIDO NA FUNÇÃO")
   RESULT False
ELSE IF nRet = -4
   Error("O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.")
   RESULT False
ELSE IF nRet = -5      
   Error("Erro ao abrir a porta de comunicação.")
   RESULT False
END

Falta algum comando para mandar para a impressora??
Grato,   

maddog_pa

  • Full Member
  • ***
  • Mensagens: 240
  • Karma: +0/-0
Re:Como fazer bematech com windev
« Responder #14 Online: Janeiro 10, 2013, 11:34:15 am »
Pode ser problemas de parametro.. vamos fazer assim

Vc esta conseguindo emitir uma LeituraX ?