
naugustijr
Membros-
Total de ítens
7 -
Registro em
-
Última visita
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
naugustijr's Achievements
-
Pessoal, acabei de encontrar o problema e a solução. Juntei os argumentos de cada um de vocês, consegui simular o problema, diagnostica-lo e achar uma solução (que está vinculada ao design da minha aplicação). Cenário: Cliente Windows XP Impressora fiscal MP 4000 TH FI Bobina com pouco papel Aplicativo desenvolvido em Visual Basic 6.0 utilizando ACBrFramework Histórico: Aplicativo instalado ontem no cliente. Hoje apresentou problemas ao ativar a impressora (ACBR.ATIVAR), retornando a mensagem DISK FULL. Ao utilizar o formulario de configuração da impressora (no mesmo aplicativo) a impressora ativava normalmente e retornava a mensagem POUCO PAPEL. Eu desativava a impressora e ativava novamente e nada de aparecer a mensagem DISK FULL. Saia da configuração da impressora e quando retornava recebia novamente a mensagem DISK FULL. Ainda no cliente, pedi para que o mesmo trocasse a bobina (com pouco papel) por uma nova. Ele trocou e resolveu o problema. O que não tinha sentido (POUCO PAPEL e DISK FULL) confirmou ter alguma relação obscura. Para encontrar a solução precisava simular o problema no meu ambiente de desenvolvimento. Simulação em Ambiente de Desenvolvimento: Sempre uso o emulador da SWEDA, connectsim, e tentei simular pouco papel com ele. Em todos os aplicativos que tinha em mãos nao retornava o status e nem a mensagem. Instalei o emulador novo da bematech e tambem nao funcionou direito com o com0com que tenho funcionando aqui. Instalei emulador antigo da Bematech. Este sim me retornou o status de pouco papel e fez com o erro acontecesse em ambiente de desenvolvimento. Depois de vários testes e tentativas de alteração de código percebi que: Eu tento no sistema ativar a impressora em 2 locais diferentes: a) para verificar somente se a impressora esta configurada corretamente e funcionando e Declaracao da variavel global Public ACBrECF As New ACBrFramework_Net.ACBrECF para trabalhar efetivamente com a impressora. Declaração da Variavel Local Public WithEvents ACBrECF As ACBrFramework_Net.ACBrECF As diferenças entre os 2 locais de ativação eram a existência( ou não (a) de um formulário (form) associado. Concluí então, que o fato do ACBr disparar eventos como o de POUCO PAPEL exigia um tratamento (ou pelo menos um ambiente-form- em que pudesse se "expressar") para o evento disparado. Para não alterar muito meu código criei um formulário (que fica invisivel o tempo todo) com uma variavel do ACBR que será setada para a instância global e que trata os eventos emitidos pelo ACBrECF. Formulario Public WithEvents ACBrECF As ACBrFramework_Net.ACBrECF Public WithEvents ACBrAAC As ACBrFramework_Net.ACBrAAC Public WithEvents ACBrEAD As ACBrFramework_Net.ACBrEAD Private Sub ACBrECF_OnMsgPoucoPapel() MsgBox "POUCO PAPEL", vbCritical, "IMPORTANTE!" Beep End Sub Chamada ao Formulario Set frm_PDV_Testa_Impressora.ACBrECF = ACBrECF Select Case AtivaEProgramaECF 'Onde ocorria o erro Com esta solução o problema não mais ocorreu. Resumindo, o cenário de ocorrência foi identificado, uma solução viável foi apresentada. Fica faltando a explicação do porque da mensagem DISK FULL. É com vocês agora.
-
Problemas Na Migração Do Acbrx Para Acbrframework - Memoparams
naugustijr replied to naugustijr's tópico in VB6 (ActiveX)
Caro Josevaldo, a sua resposta não consta aqui no Forum. Se você não se solidarizar com minhas duvidas explicitamente temos menos chance de sermos correspondidos. Se tem uma dúvida semelhante faça-a constar aqui tambem. Eu também tenho interesse em ajudar no projeto mas preciso de algo mais mastigado visto que todos temos pouco tempo disponivel. -
Problemas Na Migração Do Acbrx Para Acbrframework - Memoparams
naugustijr replied to naugustijr's tópico in VB6 (ActiveX)
Me desculpem. Esqueci de perguntar. No tópico a seguinte informação: O próprio componente a extrai numa pasta temporária e a utiliza sem que o usuário saiba. Como o arquivo ACBrFramework32.dll faz/pode fazer manipulações de arquivos (deve utilizar o path da aplicação ou de onde se encontra) e o mesmo é extraído em uma pasta temporária será que os arquivos que ele tenta ler (exemplo: acbrecfmemo.ini) nunca serão encontrados pois não estão nesta pasta temporária? -
Problemas Na Migração Do Acbrx Para Acbrframework - Memoparams
naugustijr replied to naugustijr's tópico in VB6 (ActiveX)
Pessoal, como ninguém respondeu e precisava de uma solução, recompilei o ACBRFramework32.dll no Lazarus, (com a alteração do parâmetro HTML=1 para HTML=0) compilei novamente o ACBrFramework.Net.dll (ACBrFramework.Net.tlb) e usei no aplicativo feito em Visual Basic 6.0. Funcionou da forma que eu precisava. O problema é que os dados da empresa que ficam na propriedade MemoParams são genéricos e se quiser uma solução alternativa tenho que gerar um arquivo ACBRFramework32.dll (e descendentes) para cada cliente. Preciso resolver a questão da atualização (em tempo de execução) do campo MemoParams. Pensei em algumas alternativas: 1) Gerar um arquivo ACBRFramework32.dll para cada cliente (dito acima) 2) Criar uma propriedade com o local do arquivo ACBrMemoParams.ini (que no ACBrECF.pas é acbrecfmemo.ini, e não consegui ler com este nome tambem) e criar um método (procedure) e encapsulá-lo no ACBrFramework para carregar o arquivo; 3) Encapsular a procedure MemoLeParams no ACBrFramework. É possível, viável? 4) Tentar alterar o código fonte do ACBrFramework para que a propriedade MemoParams aceite ser escrita, assumindo que atualmente ela não está funcionando corretamente. Documentos associados: http://blogs.msdn.com/b/aszego/archive/2009/10/12/visual-basic-6-and-net-com-interop.aspx http://support.microsoft.com/kb/327084 Se alguém puder ajudar, agradeço muito. . -
Problemas Na Migração Do Acbrx Para Acbrframework - Memoparams
um tópico no fórum postou naugustijr VB6 (ActiveX)
Pessoal, não preciso repetir que tanto o projeto ACBr como o ACBrFramework são fantásticos, mas estou encontrando alguns problemas em usá-lo no VB6. Tenho um aplicativo funcional que utiliza o ACBrX do pessoal do EasyTef. O pessoal sempre me deu um bom suporte mas depois que vocês lançaram o ACBrFramework eles não me responderam mais. Acho que perderam o interesse pelo produto. Dessa forma, estou fazendo uma avaliação para trocar o ACBrX pelo ACBrFramework. Ja baixei o projeto, compilei e consigo fazê-lo funcionar PARCIALMENTE. ------------ Para fazê-lo funcionar tive que fazer algumas alterações no aplicativo de exemplo: Trocar: Private Sub ACBrECF_OnBobinaAdicionaLinhas(ByVal e As ACBrFramework_Net.BobinaEventArgs) Por: Private Sub ACBrECF_OnBobinaAdicionaLinhas(ByVal e As ACBrFramework_Net.BobinaAdicionaLinhasEventArgs) -------------- Percebi que várias funções que eu usava estão marcadas como PENDENTES: Exemplo: Private Sub mniAchaAliquotaValor_Click() 'PENDENTE 'Dim Aliquota As Aliquota 'Dim Valor As String ' ' Call ACBrECF.LerTotaisAliquota ' Set Aliquota = ACBrECF.AchaICMSAliquota(Valor, "") 'função que usava em minha aplicação Neste caso específico não preciso mais da função visto que a função de programação de aliquota não cria aliquotas já existentes. Mando programar a aliquota e se ela ja existir nada acontecerá. Não entendi (não encontrei na documentação) porque algumas das propriedades do ACBrECF não existem mais (ou, pelo menos, não funcionam no ACBRFramework). Propriedades inexistentes: ReTentar BloqueiaMouseTeclado ExibeMensagem MsgAguarde MsgTrabalhando Objetos Inexistentes: ACBrRFD Metodos Inexistentes: ACBrECF.CarregarMemoParams Algumas das mudanças (incluo em mudanças as pendencias e melhorias em algumas funções) não tiveram grande impacto mas tem uma que está me atrapalhando muito (por enquanto, é a única). No meu aplicativo mostro na tela o retorno do processamento dos comandos em um componente do tipo textbox, utilizando a propriedade Linhas do evento ACBrECF_OnBobinaAdicionaLinhas. Para que saida seja satisfatoria o conteudo da propriedade Linhas deve estar em modo texto (HTML=0, na propriedade MemoParams) e nao HTML (HTML=1, na propriedade MemoParams). Com o ACBrX eu carregava esta informação de um arquivo .INI e atualizava a propriedade MemoParams. Agora não consigo fazer o mesmo com o ACBrFramework e o retorno da propriedade Linhas está cheio de tags HTML. Eu preciso realmente resolver este problema. Irei fazer a migração do aplicativo para C# (tenho outros ja rodando) mas não tenho tempo para fazer isso agora. Tecnicamente falando. O objeto ACBrECF tem uma propriedade que é um array de string (Propriedade MemoParams) e que não ser alterada mesmo tendo o método SET no ACBrFramework.Net.dll. Ela pode ser lida (GET) mas não pode ser alterada. A mensagem que retorna é a seguinte: Function or interface marked as restricted, or the function uses an Automation Type not supported in Visual Basic. Acredito que o problema não seja "restricted" visto que a propriedade é publica e outras propriedades da mesma classe são acessadas e alteradas normalmente. O problema deve ser o "Automation Type not supported in Visual Basic". Vocês já tentaram alterar a propriedade MemoParams dentro do VB6? Façam este teste no Aplicativo ECFTeste.vbp. Substituam o inicio do codigo da procedure CarregarACBrECF por Private Sub CarregarACBrECF() Set ACBrECF = New ACBrECF Dim memoparams As Variant 'Atribuo tranquilamente sem erros memoparams = ACBrECF.memoparams 'Altero a variavel local memoparams(1) = "LIN000=<center><b>RARARARRARAR</b></center>" memoparams(22) = "HTML=0" 'Trecho de codigo que da erro de compilação ACBrECF.memoparams = memoparams 'Utilizar o AAC 'Set ACBrAAC = New ACBrAAC 'ACBrAAC.NomeArquivoAuxiliar = "C:\teste.txt" 'Set ACBrECF.AAC = ACBrAAC Desde já agradeço muito a atenção. Ficarei feliz se puder ajudar no projeto também. -
Caro EasyTEF, ja tinha visto o trabalho de voces. No entanto, no seu site não existe telefone, email de contato, etc. Como faço para entrar em contato como você?
-
Estou com problemas ao criar o activex do ACBR para utiliza-lo no visual basic 6. O exemplo que tem no projeto esta bastante incompleto e comecei, entao, a ampliá-lo. No entanto estou com problemas com relação as funções que passam "estruturas" de dados por parâmetro, conforme levantei neste post. http://www.forumweb.com.br/foruns/topic ... ge__st__60 . Nao estou consiguindo carregar as aliquotas corretamente. Ainda faltam as formas de pagamento e outros. Como alternativa a sugestao do post, tentei usar outra funcao:GetAliquotaSStr . Ao usar a funcao ECF_GetAliquotaSStr percebi que nao tinha na versão da ACBr32.dll (922KB) da pasta C:\SVN\ACBR\Projetos\ACBr32_DLL\ACBr_ActiveX. Usei a outra dll que estava na pasta C:\SVN\ACBR\Projetos\ACBr32_DLL\ACBr32 (1608 kb) mas ai surgiu outro erro "BAD DLL calling convention." Pesquisei e se refere a questoes de compilacao encontradas no mesmo post. http://support.microsoft.com/kb/153586 http://www.codeguru.com/forum/showthread.php?t=373600 Check these threads: http://www.codeguru.com/forum/showthread.php?t=356338 http://www.codeguru.com/forum/showthread.php?t=352701 http://www.codeguru.com/forum/showthread.php?t=371639 __________________ A sugestao seria recompilar utilizando a diretiva "STDCALL". Baixei o Delphi 2010 e tentei recompilar. Nao consegui. Ocorreu o seguinte erro: [DCC Error] ACBrPAFClass.pas(496): E2010 Incompatible types: 'TListSortCompare' and 'Pointer' O que eu faço? TFA.