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