Jump to content

2 Dia do ACBr

O Dia da Automação Comercial está chegando!
Inscreva-se

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Rafael Batiati

ANSWERED Novo: Acbrframework Em Vb6

Recommended Posts

Pessoal,

O ACBrFramework.Net foi modificado para exportar as classes para ActiveX via COM.

Agora é possível utilizá-lo em plataformas que suporta componentes COM como VB6 por exemplo.

 

post-343-0-48467900-1358534495_thumb.jpg

 

Por enquanto apenas o ECF os componentes ECF, AAC e EAD estão funcionando experimentalmente com suporte a propriedades e a eventos.

Para utilizar, é preciso compilar o projeto em C# como "COM Interop"

 

post-343-0-72202600-1358534929.jpg

 

esse modo gera o ACBrFramework.Net.dllACBrFramework.Net.tlb

o arquivo tlb é usado para referenciar no VB6 por exemplo, em Project > References

 

o arquivo dll deve ser registrado com o utilitário RegAsm.exe, da mesma forma que as DLLs ActiveX são com o regsvr (nada muda!)

 

Você precisa do .Net 3.5 instalado

O RegAsm.exe normalmente fica na pasta do .Net (C:\Windows\Microsoft.NET\Framework\v2.0.50727)

 

Basta digitar na linha de comando:

 

C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe c:\Onde_está_sua_DLL\ACBrFramework.Net.dll /codebase

 

Para baixar a DLL compilada:

http://sourceforge.net/projects/acbrframework/files/ACBrFramework.Net.COM.zip/download

 

Para baixar os fontes

 

Siga as intruções

http://acbrframework.sourceforge.net/downloads/codigo-fonte/

 

O projeto VB6 está em:

https://acbr.svn.sourceforge.net/svnroot/acbr/ACBrFramework/ACBrFramework.ActiveX/

 

 

***

 

Qualquer dúvida, problema, sugestão, estamos aí.

  • Like 1

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Share this post


Link to post
Share on other sites

Rafael, sou desenvolvedor em VB6 e utilizo o GAS como ferramenta pada acelerar o desenvolvimento gostaria muito de utilizar o acbr no meu projeto e disponibilizar no forum da ferramenta um exemplo para que todos os outros possam tambem utilizar desta ferramenta acbrframework, gosta de saber se tem como me ajudar nesta tarefa, tambem estou a disposição para ajudar no projeto...

 

agradeço

 

ronaldo

(63)8140-4921 tim

(63)9954-2522 vivo

Share this post


Link to post
Share on other sites
Rafael, sou desenvolvedor em VB6 e utilizo o GAS como ferramenta pada acelerar o desenvolvimento gostaria muito de utilizar o acbr no meu projeto e disponibilizar no forum da ferramenta um exemplo para que todos os outros possam tambem utilizar desta ferramenta acbrframework, gosta de saber se tem como me ajudar nesta tarefa, tambem estou a disposição para ajudar no projeto...

 

Com certeza,

 

Primeiro baixe o código-fonte do projeto, instruções no link abaixo:

http://acbrframework.sourceforge.net/downloads/codigo-fonte/

 

Nós temos feito os exemplos "demos" o mais parecido possível com os demos feitos no ACBr.

Nesse caso, para o ECF, se você seguir o ECFTeste no ACBr (em Delphi) ou no ACBrFramework.Net (em C#) fazendo algo semelhante em VB6 será de grande valia para toda a comunidade.

 

Qualquer dúvida, é só postar.

Abs!


Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Share this post


Link to post
Share on other sites

@marcos batista

Leia o primeiro post com atenção, não existe passo a passo, baixe a ultima versão do SVN, la tem um demo do vb6.

Para usar o com interop precisa registrar a dll com o regasm.exe.

De resto é so ver o demo mesmo.

 

informações para download do svn:

http://acbrframework.sourceforge.net/downloads/codigo-fonte/


Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

ACBrFramework Desenvolvedor ACBrFramework.

 

Share this post


Link to post
Share on other sites

Olá,

 

Srs., baixei o ABrFramework conforme acima, e baixei o teste em vb6, como descrito, registrei via regasm.

 

Tentei rodar o teste e o mesma da vários Erros, tentei criar um codigo simples, veja abaixo:

 

Private Sub Form_Load()

Dim ACBrECF As ACBrFramework_Net.ACBrECF

Dim ret As Boolean

Set ACBrECF = New ACBrECF    ---> da Erro de Automation nesta linha ?

ret = ACBrECF.AcharECF(True, False)

End Sub

 

Bem, gostaria de saber se existe tipo alguma relação com o local da DLL, se tem que existir junto o .TLB...enfim.

 

Em minha máquina Windows XP SP3, tenho os Net Frameworks 1.1, 2.0 SP2, 3.0 SP2, 3.5, 3.5 SP1 e  4.0 Extended e Multi-targeting Pack.

 

Conto com a ajuda dos amigos.

Share this post


Link to post
Share on other sites

@xmaxmex

A dll funciona da mesma forma que o activex, so que você registra com o regasm, e para ser usado tem estar ela e o .tlb junto.

 

http://edndoc.esri.com/arcobjects/9.2/NET/9826f81b-278c-49cc-a912-ab8d86f5e91e.htm

 

Obs: o Comando postando pelo o Batiati estava faltando a opção /codebase, tente registrar novamente usando este parametro como esta descrito agora no primeiro post.


Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

ACBrFramework Desenvolvedor ACBrFramework.

 

Share this post


Link to post
Share on other sites

Blz Rafael,

 

Funcionou com a opção /codebase !

 

Só uma observação no programa de teste em vb6, logo no inicio do codigo tem essas duas linhas que gera erros:

 

Public WithEvents ACBrAAC As ACBrFramework_Net.ACBrAAC
Public WithEvents ACBrEAD As ACBrFramework_Net.ACBrEAD

 

Pois não existem ?

 

Bem basta comenta-las para tudo funcionar, em breve estarei testando varias funções e irei postar aqui okay ?

 

Sucesso.

Share this post


Link to post
Share on other sites

@xmaxmex

Deve ser a versão da sua dll que é antiga tente atualizar que ele funcionara normalmente, este componentes foram adicionados recetemente ao interop.


Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

ACBrFramework Desenvolvedor ACBrFramework.

 

Share this post


Link to post
Share on other sites

xmaxmex,

Os componentes AAC e EAD foram adicionados recentemente, baixe a dll mais atual pelo link de download ou pelo SNV.

 

No projeto demo do VB6, elas estão apenas declaradas, mas sem uso, pois a parte do demo do AAC e EAD não existem nesse projeto.

 

Caso você tenha interesse em adicionar os demos em VB6 pra esses componentes, basta seguir o que existe no aplicativo ECFTeste original em Delphi e postar o fonte que a gente atualiza no SVN.

 

Temos planos de disponibilizar os componentes PAF e RFD para ActiveX dentro em breve.

Abs,


Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Share this post


Link to post
Share on other sites

Tem duas, pois uma é feita pra .Net enquanto a outra é modificada para ActiveX

 

A correta pra uso em VB6 é essa

http://sourceforge.net/projects/acbrframework/files/ACBrFramework.Net.COM.zip/download

 

Precisa registrar, como explicado no primeiro post.

Não precisa de outras dlls, apenas essa.

 

Abs


Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Share this post


Link to post
Share on other sites

Veja se você registrou o componente corretamente:

 

A dll funciona da mesma forma que o activex, so que você registra com o regasm, e para ser usado tem estar ela e o .tlb junto.

 

http://edndoc.esri.com/arcobjects/9.2/NET/9826f81b-278c-49cc-a912-ab8d86f5e91e.htm

 

Obs: o Comando postando pelo o Batiati estava faltando a opção /codebase, tente registrar novamente usando este parametro como esta descrito agora no primeiro post.


Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Share this post


Link to post
Share on other sites

Segui os procedimentos recomendados e consegui rodar em duas máquinas, mas as duas possuíam o VB6 e .Net 2.0, 3.5 e 4.0 instalados.

 

Numa terceira máquina, a do cliente, instalei o .net 3.5 e 4 mas quando vou instanciar a ACBrECF ocorre o erro "Automation Error (80131040)".

Procurando no blog http://blogs.msdn.com/b/eldar/archive/2007/04/03/a-lot-of-hresult-codes.aspx :

FUSION_E_REF_DEF_MISMATCH     0x80131040 -2146234304

 

Tentei gerar o tlb na máquina do cliente usando o comando:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe c:\minha_DLL\ACBrFramework.Net.dll /codebase /tlb:ACBrFramework.Net.tlb

E gerou o seguinte resultado (apesar de alguns avisos gerou a tlb):

Microsoft ® .NET Framework Assembly Registration Utility 2.0.50727.3053
Copyright © Microsoft Corporation 1998-2004. Todos os direitos reservados.

Registro de tipos executado com ˆxito
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.ACBrListInterop`1, ACBrFramework.Net'. Aviso: O exportador da biblioteca de tipos encontrou um tipo gen‚rico. NÆo ‚ poss¡vel exportar classes gen‚ricas para COM.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.AAC.Arquivos.GetEnumerator(#0), ACBrFramework.Net'. Aviso: O exportador da biblioteca de tipos encontrou uma instƒncia de tipo gen‚rico em uma assinatura. NÆo ‚ poss¡vel exportar o c¢digo gen‚rico para COM.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.AAC.ECFs.GetEnumerator(#0), ACBrFramework.Net'. Aviso: O exportador da biblioteca de tipos encontrou uma instƒncia de tipo gen‚rico em uma assinatura. NÆo ‚ poss¡vel exportar o c¢digo gen‚rico para COM.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.AAC.InfoPaf.get_TipoFuncionamento(#0), ACBrFramework.Net'. Aviso: O tipo de valor vis¡vel nÆo-COM 'ACBrFramework.PAF.TipoFuncionamento' est  sendo usado como referˆncia pelo tipo que est  sendo exportado ou por um dos seus tipos base.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.AAC.InfoPaf.set_TipoFuncionamento(value), ACBrFramework.Net'. Aviso: O tipo de valor vis¡vel nÆo-COM 'ACBrFramework.PAF.TipoFuncionamento' est  sendo usado como referˆncia pelo tipo que est  sendo exportado ou por um dos seus tipos base.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.AAC.InfoPaf.get_TipoIntegracao(#0), ACBrFramework.Net'. Aviso: O tipo de valor vis¡vel nÆo-COM 'ACBrFramework.PAF.TipoIntegracao' est  sendo usado como referˆncia pelo tipo que est  sendo exportado ou por um dos seus tipos base.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.AAC.InfoPaf.set_TipoIntegracao(value), ACBrFramework.Net'. Aviso: O tipo de valor vis¡vel nÆo-COM 'ACBrFramework.PAF.TipoIntegracao' est  sendo usado como referˆncia pelo tipo que est  sendo exportado ou por um dos seus tipos base.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.AAC.InfoPaf.get_TipoDesenvolvimento(#0), ACBrFramework.Net'. Aviso: O tipo de valor vis¡vel nÆo-COM 'ACBrFramework.PAF.TipoDesenvolvimento' est  sendo usado como referˆncia pelo tipo que est  sendo exportado ou por um dos seus tipos base.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.AAC.InfoPaf.set_TipoDesenvolvimento(value), ACBrFramework.Net'. Aviso: O tipo de valor vis¡vel nÆo-COM 'ACBrFramework.PAF.TipoDesenvolvimento' est  sendo usado como referˆncia pelo tipo que est  sendo exportado ou por um dos seus tipos base.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.EAD.ACBrEAD.CalcularHashArquivo(HashType), ACBrFramework.Net'. Aviso: O tipo de valor vis¡vel nÆo-COM 'ACBrFramework.EAD.EADDigest' est  sendo usado como referˆncia pelo tipo que est  sendo exportado ou por um dos seus tipos base.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.EAD.ACBrEAD.CalcularHash(HashType), ACBrFramework.Net'. Aviso: O tipo de valor vis¡vel nÆo-COM 'ACBrFramework.EAD.EADDigest' est  sendo usado como referˆncia pelo tipo que est  sendo exportado ou por um dos seus tipos base.
O exportador da biblioteca de tipos detectou um aviso ao processar 'ACBrFramework.EAD.ACBrEAD.CalcularHash(HashType), ACBrFramework.Net'. Aviso: O tipo de valor vis¡vel nÆo-COM 'ACBrFramework.EAD.EADDigest' est  sendo usado como referˆncia pelo tipo que est  sendo exportado ou por um dos seus tipos base.
O m¢dulo (assembly) foi exportado para 'C:\minha_DLL\ACBrFramework.Net.tlb' e a biblioteca de tipos foi registrada com ˆxito

 

Já tentei limpar o registro e refazer tudo, mas o erro prossegue.

Agradeço por qualquer dica.

 

att

 

 

Share this post


Link to post
Share on other sites

@alexcassou

Cara, pelo que está parecendo, você está usando a ACBrFramework.Net errada.

Existe uma versão própria dela compilada como "COM Interop", que só expõe os tipos já suportados no interop (dá uma olhada no primeiro post).

 

Se você está compilando sua versão da DLL, dá uma checada nisso.

 

Se você baixou a DLL, verifique se o link de download foi para o ACBrFramework.Net.COM.zip

http://sourceforge.net/projects/acbrframework/files/ACBrFramework.Net.COM.zip/download

 

(...)

 

Só pra constar, você precisa apenas do Microsoft.Net Framework v3.5 instalado.

 

Abs.


Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Share this post


Link to post
Share on other sites

Eu baixei do link que você menciona, como no primeiro post.

 

Também baixei os fontes e tentei compilar com o "COM Interop" e selecionei a x86 como plataforma. Ocorreu o mesmo erro então passei a testar somente com a do link que você indicou no post anterior.

 

Baixei o .Net 3.5 sp1 completo (http://www.microsoft.com/pt-br/download/details.aspx?id=22)

 

abs

Share this post


Link to post
Share on other sites

Opa, falha nossa ... baixe novamente a DLL, mesmo endereço

http://sourceforge.n...OM.zip/download

 

O erro que você reportou na geração do TLB foi resolvido.

 

Agora, o erro "Automation Error (80131040)".

 

For a "The located assembly's manifest definition with name [yourAssembly] does not match the assembly reference" message (for hresult FUSION_E_REF_DEF_MISMATCH, 0x80131040): The Fusion log will say which part of the assembly reference failed to match what was found. It will be the assembly name, culture, public key (or token) or version (if the found assembly was strongly-named).

 

Tente verificar se a DLL não está duplicada em mais de um lugar.

 

A instalação de ActiveX costuma ser fácil quando funciona, e terrível quando não funciona. É interessante pra gente levantar e documentar os possíveis problemas e soluções.

 

Abs!


Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Share this post


Link to post
Share on other sites

Baixei novamente as dlls, mas acho que nada tinha sido alterado pois as datas eram as mesmas.

 

Bom, consegui resolver utilizando a ferramenta Fuslogvw.exe (Assembly Binding Log Viewer) que vem com o .Net. Neste link mostra onde ela se encontra: http://stackoverflow.com/questions/1674279/cant-locate-fuslogvw-exe-on-my-machine

 

Pelo log que ele gerou, vi que estava utilizando o .Net 4.0 ao invés do 3.5, como pode ser visto na linha "Assembly manager loaded from".

Note também que no final do log existem duas versões: a 0.9.2.8 (Provavelmente a que compilei e instalada no .Net 4.0) e a 0.9.2.7 (a correta).

*** Assembly Binder Log Entry  (15/3/2013 @ 13:51:01) ***

The operation failed.
Bind result: hr = 0x80131040. No description available.

Assembly manager loaded from:  C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  c:\minha_DLL\MeuTeste.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = PC-01\USER
LOG: DisplayName = ACBrFramework.Net, Version=0.9.2.8, Culture=neutral, PublicKeyToken=4ca716d5e1bd4ba3
 (Fully-specified)
LOG: Appbase = file:///C:/minha_DLL/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = MeuTeste.exe
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Download of application configuration file was attempted from file:///C:/minha_DLL/MeuTeste.exe.config.
LOG: Configuration file c:\minha_DLL\MeuTeste.exe.config does not exist.
LOG: No application configuration file found.
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: ACBrFramework.Net, Version=0.9.2.8, Culture=neutral, PublicKeyToken=4ca716d5e1bd4ba3
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/minha_DLL/ACBrFramework.Net.DLL.
LOG: Assembly download was successful. Attempting setup of file: c:\minha_DLL\ACBrFramework.Net.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: ACBrFramework.Net, Version=0.9.2.7, Culture=neutral, PublicKeyToken=4ca716d5e1bd4ba3
WRN: Comparing the assembly name resulted in the mismatch: Revision Number
ERR: The assembly reference did not match the assembly definition found.
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

O que fiz foi remover o .Net 4.0, pois não tem o GacUtil.exe e não conseguia remover o Assembly ACBrFramework.Net.dll dele.

 

Valeu pela ajuda!

Share this post


Link to post
Share on other sites

Então você estava com 2 dlls instaladas no seu sistema, a versão 4.0 e a versão 3.5.

No caso do VB6, você não precisa registrá-la no GAC, desde que use o Regasm /codebase e não remova a dll da pasta onde ela foi registrada.

 

Abraços.


Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Share this post


Link to post
Share on other sites

Boa Noite a todos,

 

Gostaria de Saber se ja esta disponivel o ACBrPAF para o ActiveX (Interop), pois estou tentando terminar o Menu Fiscal do PAF-ECF, e estarei precisando gera os relatorios de Estoque, Produtos e etc., que pode ser realizados via o metodo PAF, correto ?

 

Já pesquisei tanto isto, que quando terminar vou postar o codigo do meu Menu Fiscal ;P

 

Abraços,

Share this post


Link to post
Share on other sites

Sim, alguns arquivos do menu fiscal são gerados pelo PAF. Os de Venda por Período são gerados pelo Sintegra/Sped.

 

Esses 3 componentes já estão disponíveis no ACBrFramework, mas não preparamos eles para ser visíveis no ActiveX por falta de tempo. 

 

O trabalho consiste em basicamente repetir tags "ComVisible" para as classes, e inserir outros tags para eventos e alguns tipos de dados especiais.

Não é difícil de fazer, mas é um trabalho minucioso e requer atenção para não fazer nada errado (depois é complicado de debugar).

 

Olhando os fontes do projeto em C# você vai ver partes onde tem "COM Interop"

Caso você tenha interesse, poste aí que podemos iniciar juntos algumas classes até você pegar  jeito.

 

Abs.


Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Share this post


Link to post
Share on other sites

Bem, vou tentar ajudar,

 

Tem que usar o Visual 2008 ou 2010 ? As versões Express podem ser usadas ?

 

Se voce tiver um exemplo, ja ajuda bastante...mas vou tentar...

 

Abrços.

Share this post


Link to post
Share on other sites

Nos usamos o Visual Studio 2012, é compativel com as versões express, mas nunca testamos.

É so você olha como é feito no ECF. Como disse o Batiati as parte com "COM Interop".

E na hora de compilar usar a configuração "COM Interop".


Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

ACBrFramework Desenvolvedor ACBrFramework.

 

Share this post


Link to post
Share on other sites

Ola,

 

Bom dia! 

 

Sou usuário do GAS2003 e estou querendo retirar as funções de ECF do mesmo, conseguiu mudar os codigos e ja estou emitindo LEITURA X, Sangria, Suprimento e REDUÇÃO Z.

Ontem a noite deparei com um problema de retorno de FLAGS, o GAS2003 esta usando duas funções ANALISAFLAGS E RETORNODEFLAGS. Segue as funcoes abaixo:

Essa funções analisa retorno de erro que vir por existir na ECF, tipo "POUCO PAPEL", eu sei e tenho certeza que vocês estão por dentro desse assunto, a minha dúvida mesmo seria como 

eu poderia esta usando de uma melhor forma a DLL.

 

Espero que mim entendam.

 

Att.

 

Josevaldo

 

 

 
 
*********************
 
Public Function RetFlagsFiscais(vgQueFlag As Integer, vgValorFlag As Boolean) As Long
 Dim vgRetVal As Long, NErro As Long, vgFlag As Integer
 'On Error Resume Next
 vgValorFlag = False
 NErro = 3411
 vgRetVal = 0
 If Not AbrePortaImp() Then                                       'tenta abrir porta da impressora
  vgRetVal = 3400
 End If
 If vgRetVal = 0 And vgRetornoEcf = 1 Then
  vgRetornoEcf = GECF_FI_FlagsFiscais(vgFlag)
  vgRetornoEcf = TrataErroECF
  If vgRetornoEcf = 1 Then
   vgValorFlag = AnalisaFlagsFiscais(vgFlag, vgQueFlag)
  End If
 End If
 If vgRetornoEcf <> 1 Then
  vgValorFlag = False
 End If
 If vgRetornoEcf <> 1 And vgRetVal = 0 Then
  vgRetVal = NErro
 End If
 RetFlagsFiscais = vgRetVal
End Function
 
Public Function AnalisaFlagsFiscais(ByVal FlagFiscal As Integer, Optional Checagem As Integer) As Boolean
 Dim RetVal As Boolean
 If IsMissing(Checagem) Then Checagem = 0
 RetVal = False
 If (FlagFiscal >= 128) Then
  If Checagem = 128 Then
   RetVal = True
  End If
  FlagFiscal = FlagFiscal - 128
 End If
 If (FlagFiscal >= 32) Then
  If Checagem = 32 Then
   RetVal = True
  End If
  FlagFiscal = FlagFiscal - 32
 End If
 If (FlagFiscal >= 8) Then
  If Checagem = 8 Then
   RetVal = True
  End If
  FlagFiscal = FlagFiscal - 8
 End If
 If (FlagFiscal >= 4) Then
  If Checagem = 4 Then
   RetVal = True
  End If
  FlagFiscal = FlagFiscal - 4
 End If
 If (FlagFiscal >= 2) Then
  If Checagem = 2 Then
   RetVal = True
  End If
  FlagFiscal = FlagFiscal - 2
 End If
 If (FlagFiscal >= 1) Then
  If Checagem = 1 Then
   RetVal = True
  End If
  FlagFiscal = FlagFiscal - 1
 End If
 AnalisaFlagsFiscais = RetVal
End Function
 
Public Function GECF_FI_FlagsFiscais(ByRef Flag As Integer) As Integer
 Select Case vgMarcaECF
  Case GECF_BEMATECH, GECF_YANCO
       GECF_FI_FlagsFiscais = Bematech_FI_FlagsFiscais(Flag)
  Case GECF_DARUMA
       GECF_FI_FlagsFiscais = Daruma_FI_FlagsFiscais(Flag)
  Case GECF_ELGIN
       GECF_FI_FlagsFiscais = Elgin_FlagsFiscais(Flag)
  Case GECF_SWEDA
       GECF_FI_FlagsFiscais = ECF_FlagsFiscais(Flag)
  Case GECF_EPSON
       GECF_FI_FlagsFiscais = EPSON_Obter_Estado_Impressora(Str(Flag))
       GECF_FI_FlagsFiscais = IIf(GECF_FI_FlagsFiscais = 0, 1, 0)
 End Select
End Function

Josevaldo Bringel

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...