Jump to content

dev botao

ACBrLib com VB6 - Captura de Retorno


João Paulo Pires
Go to solution Solved by Daniel Simoes,
  • Este tópico foi criado há 1661 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Fundadores

Não sei se compreendi a questão...

A DLL retorna a resposta em uma variável...

Repare que a resposta é uma estrutura do tipo INI... ou seja, com uma Classe que interprete Arquivos INI você conseguiria capturar os valores dos Campos retornados 

https://pt.m.wikipedia.org/wiki/INI_(formato_de_arquivo)

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Fundadores
  • Solution

Notei que o manual da ACBrLIb ainda não exemplifica o formato dos Retornos em INI... Procuraremos atualizar... 

Mas em quanto isso, use o manual do ACBrMonitorPLUS, para ver exemplos dos retornos ( Lib e Monitor usam a mesma rotina de retornos )

https://acbr.sourceforge.io/ACBrMonitor/NFEStatusServico.html

  • Like 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

Agora, Daniel Simoes disse:

Não sei se compreendi a questão...

A DLL retorna a resposta em uma variável...

Repare que a resposta é uma estrutura do tipo INI... ou seja, com uma Classe que interprete Arquivos INI você conseguiria capturar os valores dos Campos retornados 

https://pt.m.wikipedia.org/wiki/INI_(formato_de_arquivo)

ok Daniel, vou verificar isso. obrigdo.

Link to comment
Share on other sites

@Daniel Simoes boa tarde, consegui fazer a leitula dos logs de retorno usando esse exemplo do nosso amigo http://www.macoratti.net/vb_ini.htm

porém o retorno esta vindo com os caracteres todos bagunçados, parece nao estar como UTF-8. 
Mas quando eu vejo direto no arquivo ACBrLib-20191105.log, esta na formatação correta. 
Como resolvo isso?

 197413933_Semttulo.thumb.png.64d7d2aeda3d1e0de9206198cc572b0c.png

  • Like 1
Link to comment
Share on other sites

consegui resolver agora... usei essa função...

 

Private Const CP_UTF8 As Long = 65001 ' UTF-8 Code Page

'Sys call to convert multiple byte chars to a char
Private Declare Function MultiByteToWideChar Lib "KERNEL32" ( _
    ByVal CodePage As Long, _
    ByVal dwFlags As Long, _
    ByVal lpMultiByteStr As Long, _
    ByVal cchMultiByte As Long, _
    ByVal lpWideCharStr As Long, _
    ByVal cchWideChar As Long) As Long

Private Function DecodeURI(ByVal EncodedURI As String) As String
    Dim bANSI() As Byte
    Dim bUTF8() As Byte
    Dim lIndex As Long
    Dim lUTFIndex As Long

    If Len(EncodedURI) = 0 Then
        Exit Function
    End If

EncodedURI = Replace$(EncodedURI, "+", " ")         ' In case encoding isn't used.
    bANSI = StrConv(EncodedURI, vbFromUnicode)          ' Convert from unicode text to ANSI values
    ReDim bUTF8(UBound(bANSI))                          ' Declare dynamic array, get length
    For lIndex = 0 To UBound(bANSI)                     ' from 0 to length of ANSI
        If bANSI(lIndex) = &H25 Then                    ' If we have ASCII 37, %, then
            bUTF8(lUTFIndex) = Val("&H" & Mid$(EncodedURI, lIndex + 2, 2)) ' convert hex to ANSI
            lIndex = lIndex + 2                         ' this character was encoded into two bytes
        Else
            bUTF8(lUTFIndex) = bANSI(lIndex)            ' otherwise don't need to do anything special
        End If
        lUTFIndex = lUTFIndex + 1                       ' advance utf index
    Next
    DecodeURI = FromUTF8(bUTF8, lUTFIndex)              ' convert to string
End Function

Private Function FromUTF8(ByRef UTF8() As Byte, ByVal Length As Long) As String
    Dim lDataLength As Long

    lDataLength = MultiByteToWideChar(CP_UTF8, 0, VarPtr(UTF8(0)), Length, 0, 0)  ' Get the length of the data.
    FromUTF8 = String$(lDataLength, 0)                                         ' Create array big enough
    MultiByteToWideChar CP_UTF8, 0, VarPtr(UTF8(0)), _
                        Length, StrPtr(FromUTF8), lDataLength                  '
End Function

  • Like 2
Link to comment
Share on other sites

  • Fundadores

Parabéns... logo estará dando consultoria na ACBrLib... :)

Por padrão ela responde em UTF8... você pode mudar para ela responder em ANSI, usando a configuração:

CodificacaoResposta = 1

https://acbr.sourceforge.io/ACBrLib/Geral.html

  • Like 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

47 minutos atrás, Daniel Simoes disse:

Parabéns... logo estará dando consultoria na ACBrLib... :)

Por padrão ela responde em UTF8... você pode mudar para ela responder em ANSI, usando a configuração:

CodificacaoResposta = 1

https://acbr.sourceforge.io/ACBrLib/Geral.html

obrigado, no futuro quem sabe... qual a configuração que envia direto pra impressora, sem ter a visualização do danfe nfc?
 

Link to comment
Share on other sites

  • Fundadores

Chame: NFe.Imprimir, que ele irá considerar os XMLs que estão em memória (ou seja, o último XML gerado e recebido)

https://acbr.sourceforge.io/ACBrLib/NFE_Imprimir.html

  • Like 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Este tópico foi criado há 1661 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.