Jump to content

logo_acbr_paygo.png

Chegou o TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


botao_saibamais.png

beneficios.png

Curso Dominando o ACBrMonitor
Novo Módulo Soluções de Varejo
Assine o SAC ACBr em qualquer plano e tenha acesso

Saiba Mais

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

Usuários SAC
  • Content Count

    276
  • Joined

  • Last visited

  • Days Won

    2

Rafael Batiati last won the day on March 14 2013

Rafael Batiati had the most liked content!

Community Reputation

16 Good

About Rafael Batiati

  • Rank
    Moderador
  • Birthday 05/03/1982

Contact Methods

  • Website URL
    http://www.multiclubes.com.br
  • Skype
    batiati

Profile Information

  • Sexo
    Masculino
  • Localização
    Volta Redonda, RJ

Recent Profile Visitors

1,519 profile views
  1. Minha segunda homologação com o ACBrFramework.net na Polimig RJ MultiVendas PDV Linguagem C# .Net especificação 02.02 ACBrECF, ACBrPAF, ACBrSpedFiscal, ACBrSintegra, ACBrAAC e ACBrEAD Mais uma vez deixo aqui meus agradecimentos a todos da comunidade ACBr, sucesso!
  2. Nunca compilei o projeto em linux; mas os exports não estão indo. Pode ser por alguma falha nas configurações dos IFDEF do projeto, que não está setando o padrão CDECL corretamente quando roda em linux, ou pode ser alguma configuração do compilador que não está gerando os exports na lib; Pesquisei rapidamente no google pra ver se alguém tinha um problema semelhante e não achei nada parecido; portanto minha dica fica pra revisar do mais simples pro mais complicado: primeiro reveja as configurações do projeto procurando por algo anormal, depois teste a hipótese dos IFDEF, declarando algum método sem eles: Por exemplo, abra o ACBrECFDll.pas original e localize a função ECF_Create Function ECF_Create(var ecfHandle: PECFHandle): Integer; {$IFDEF STDCALL} stdcall; {$ENDIF} {$IFDEF CDECL} cdecl; {$ENDIF} export; Modifique para essa forma, sem os IFDEF Function ECF_Create(var ecfHandle: PECFHandle): Integer; cdecl; export; Compile e veja se você consegue ver o ECF_Create no objdump depois dessa modificação, nisso já teremos uma boa pista de por onde seguir.
  3. Código do ACBr e ACBrFramework C# atualizado com a propriedade Margem na classe ConfigBarras Lembrando que só foi implementado para os ECFs Bematech Observações importantes: Segundo o manual, cada unidade equivale a 0.125mm de espaçamento A margem necessária para centralizar o código de barras vai depender do tamanho e do tipo de código utilizado; é necessário testar cada caso para determinar a margem mais adequada. Quando a propriedade "ConfigBarras.MostrarCodigo" é definida como True, o texto numérico impresso acima ou abaixo do código de barras não segue o alinhamento definido na propriedade Margem; para centralizar o texto é necessário inserir espaços, exemplo: acbrECF.ConfigBarras.MostrarCodigo = true; acbrECF.ConfigBarras.Margem = 50; acbrECF.LinhaRelatorioGerencial(" <inter>12345678</inter>"); Qualquer coisa é só falar Abs!
  4. No manual da bematech chama-se "Margem" mesmo ... que é diferente de "alinhamento" Se fosse simplesmente "alinhamento = Esquerda, Direita, Centro" seria uma maravilha, mas nós temos que passar o espaço de margem que queremos pra distanciar o código da esqueda. É complicado demais calcular a margem de forma automática para que o código saia centralizado, pois depende do tipo de código utilizado, da largura das barras, da quantidade de dígitos, etc ... se a impressora suportasse o alinhamento como a Sweda seria mais simples. Você consegue contato direto com alguém do suporte da Epson e Daruma?
  5. Oi Daniel, Eu olhei os manuais. Na Bematech existe o comando direto para informar a margem; eu alterei e testei com o ACBr e funcionou. Os outros modelo é que são o problema Por exemplo, na Daruma e Epson não achei nada parecido no manual; na Sweda existe o parâmetro para centralizar ou alinha à margem O que acha de eu adicionar a propriedade Margem no ACBrECF.ConfigBarras e inicialmente só implementá-la na classe da Bematech? Alguma outra sugestão?
  6. Pessoal, Estou precisando centralizar o código de barras impresso no rel gerencial do ECF; A classe de configuração do código de barras possui parâmetros para altura e largura das barras, mas não tem parâmetros para a margem. Na DLL da bematech o método ConfiguraCodigoBarras tem um parâmetro para margem, que possibilita essa operação. Existe alguma forma de fazer a centralização do código ou devo partir para implementar a Margem no ACBrECF.ConfigBarras ? Alguém sabe se outras ECFs possuem essa mesma função? Obrigado
  7. Pessoal, Alguém tem alguma experiência pra contar sobre a emissão de serviços no ECF, tributados como ISS, e sua posterior substituição por NFS-e por meio de RPS (recibo provisório de serviço) Sei que depende muito da lei municipal, alguns município aceitam o próprio cupom fiscal como nota de serviço outros exigem a NFS-e. No caso de municípios que exigem a NFS-e, é necessário emitir um RPS caso não seja possível emitir a NFS-e online. As dúvidas são: O próprio cupom fiscal tem validade de RPS ou é necessário algum tipo de relatório gerencial descrevendo o RPS? Eu não posso deixar de emitir itens de serviço no ECF já que estou operando com impressão concomitante à venda, certo? Obrigado a todos
  8. É mais fácil achar os números da mega-sena que achar informação no site da sefaz !! Alguém está por dentro do processo da NFC-e no estado de Goiás? Eu vi o decreto em Agosto, com prazo estimado pra Dezembro de 2015, mas até agora parece que não está valendo. http://aplicacao.sefaz.go.gov.br/index.php/post/ver/182843/decreto-regulamenta-nota-eletronica-do-consumidor Abs
  9. Oi Adenilton, seja bem vindo. Se quiser pode nos mandar o código fonte do jeito que está para analisarmos e trocarmos uma idéia, depois a gente cria um repositório pra ele. Tenha certeza de que vai multiplicar! Abs,
  10. Sim, o NFe não vai ser incluído no ACBrFramework.Net, e a melhor saída pra quem quer usar o ACBr é o ACBrNFeMonitor. Eu mesmo usei ele via TCP e estou muito satisfeito com o resultado. (...) O motivo de não incluir ele no .Net é simplesmente o custo, pois vai dar tanto trabalho pra fazer/usar que é melhor fazer diretamente em C# Chegamos a iniciar o desenvolvimento dele, mas tivemos problemas com a assinatura digital, uso dos certificados, dependência do CAPICOM para certificado A3, visualização e impressão dos DANFES, e vários outros que apontaram para o abort desse componente. Nossa vontade é fazer algo parecido com o ACBrNFeMonitor em .Net nativo, só que no momento não temos prioridade nisso, então se algum desenvolvedor quiser tocar o projeto, fique a vontade, contribuiremos no que pudermos ser úteis. Abs,
  11. Cara, A primeira situação, o registro 60A repete N vezes para cada totalizador do ECF (cada situação tributária), então não há nada de anormal no arquivo ... veja se você está populando o registro corretamente, pois pode ser por aí. Tente fazer um exemplo pequeno, colocando os dados manualmente no componente pra reproduzir isso, se conseguir reproduzir, poste o código aqui. Já a segunda situação, normalmente ocorre quando você coloca um Path ou nome de arquivo incorreto. É bobeira, mas muito comum esquecer de terminar o path com um "\", exemplo: "C:\MeusDocumentos\", caso contrário o componente concatena o caminho errado. E em C# lembre-se, ou você usa string literal com o arroba @"c:\MeusDocumentos\", ou coloca duplo "\\" nos paths, "C:\\MeusDocumentos\\" Abs
  12. Pode detalhar o que está acontecendo? Problemas comuns: - Sem a DLL do fabricante no Path - Caminho do arquivo incorreto - Parâmetros incorretos - Uso do emulador Abs
  13. O uso da DLL nativa no VB6 e Fox também foi descontinuado. Para você usar o exemplo da ACBr32.dll substituindo pela ACBrFramework32.dll precisaria de algumas coisas: 1 - Atualizar as declarações de funções da DLL Nativa ACBrFramework32.dll para usar no Fox ... nós temos essas declarações em C#, C e Java. Aí vai depender do que for mais fácil pra portar. As declarações em VB6 e xBase (Fox) foram descontinuadas. 2 - Compilar em STDCALL. Hoje ela só compila em CDECL, o modo STDCALL foi descontinuado e a turma do Fox e VB6 não é capaz de usá-la diretamente, pois essas linguagens não suportam outra convenção senão a STDCALL. (...) Com certeza vocês devem estar pensando: Por que raios vocês descontinuaram uma DLL tão bacana assim? O exemplo funcionava legal pra caramba! Nossa vocês são uns malas mesmo!!! Eu explico: Chegamos num ponto do projeto onde as funções ficaram mais complexas, situações que retornam e recebem ponteiros, arrays, structs, ponteiros de função, etc. E simplesmente não conseguimos fazer declarações dessas funções compatíveis com VB6 e xBase. Não iria adiantar continuar pois nessas linguagens métodos importantes ficariam de fora. Então descontinuamos a compilação STDCALL e focamos apenas no CDECL para .Net e Java. Para quem usa VB6, xBase e outras linguagens, nós temos atualmente a distribuição ActiveX da ACBrFramework.dll, que nada tem a ver com a dll nativa ACBrFramework32.dll ... nessa versão ActiveX trabalhamos com componentes, propriedades, métodos e eventos, enquanto na dll nativa trabalhamos apenas com funções estáticas. A solução no seu caso é modificar esse exemplo trocando as chamadas da ACBr32.dll para o ActiveX, e fazendo isso as declarações de funções perdem todo o sentido. Por exemplo: //Onde era função estática int ecfHandle; ECF_Create(&ecfHandle); ECF_Device_SetPorta(ecfHandle, "COM1"); ECF_Ativar(ecfHandle); //Vira chamada ao objeto ecf = CreateObject("ACBrFramework_Net.ACBrECF"); ecf.Device.Porta = "COM1"; ecf.Ativar(); OBS: Exemplo fictício, apenas para se ter uma noção! Qualquer dúvida, estamos aí. Abs
  14. Então é + ou - isso aqui: Você usa seu objeto ead e adiciona um novo listener a ele: ead.addOnGetChavePublica(new ACBrEventListener<ChaveEventObject>() { @Override public void notification(ChaveEventObject e) { e.SetChave("XXXXXXXXXXXXXXXXXXXXX" + "\n" + "YYYYYYYYYYYYYYYYYYYYY" + "\n" "..."); } } ); Esse listener esperado no método addOnGetChavePublica é só uma implementação da classe ACBrEventListener<ChaveEventObject> que contém o método abstrato notification onde o conteúdo da chave será retornado. No exemplo acima, implementamos como uma classe anônima, bastante comum em eventos no java. Não se esqueça de passar o conteúdo da sua chave, e não o caminho do arquivo. E inclua as quebras de linha, exatamente onde elas estão, pois o ACBr precisa delas. Abraços.
  15. Então, vamos lá: O projeto é originalmente feito em .Net, e usamos uma camada para compatibilizar e expor as classes de .Net para ActiveX, através de um processo chamado COM Interop. Assim qualquer linguagem que use ActiveX poderão acessá-las. Primeiro de tudo, baixe os fontes, a DLL e os exemplos: DLL compilada do ACBrFramework.Net.COM http://sourceforge.n...OM.zip/download Fontes: http://acbrframework...s/codigo-fonte/ Você precisará do Visual Studio para abrir e compilar o projeto ACBrFramework.Net, pode baixar a última versão do Visual Studio Express no site da Microsoft, é gratuito e funciona muito bem. Um bom começo é você usar o exemplo em VB6 que já existe pra entender o funcionamento do componente, depois olhar o código-fonte do componente ACBrECF no Visual Studio. Nesse link abaixo, você encontrará uma breve introdução a como usar/compilar o ACBrFramework para COM Interop. (...) Como você verá no código fonte, nós introduzimos alguns atributos à declaração das classes visíveis no ActiveX [ComVisible(true)] [Guid("7F5440D4-8D62-441B-9251-E911437D5F8F")] [ComSourceInterfaces(typeof(IACBrECFEvents))] [ClassInterface(ClassInterfaceType.AutoDual)] public class ACBrECF ... Precisamos mudar também os seguintes recursos: - Eventos: no ActiveX são diferentes e precisam de bastante alterações (criação de uma interface e mudança nos delegates); - Dados Decimal: no ActiveX é Currency e precisam de um atributo especial; - Tipos usando Generics: no ActiveX não tem equivalente, e precisam de uma classe específica no .Net; - Overloads: no ActiveX não tem equivalente e precisam ser substituídos por parâmetros opicionais; (...) Essas mudanças você pode conferir nos componentes que já fizemos: ACBrECF, ACBrAAC, ACBrEAD e ACBrDIS (para displays). Existe uma diretiva de compilação #if COM_INTEROP que possibilita aplicar essas modificações apenas numa versão especial da DLL compilada para ser usada com o ActiveX. Na versão sem COM_INTEROP a DLL é feita para ser usada no .Net apenas. Para o mínimo necessário ao PAF, precisamos aplicar as mesmas mudanças nos componentes ACBrPAF, ACBrSped e ACBrSintegra. O TEF também é necessário para o PAF-ECF, e o ACBr possui o componente ACBrTEFD, mas alguns desenvolvedores implementam os TEF por outros meios. Depois com o tempo vamos incluindo os demais componentes da paleta de componentes do ACBrFramework.Net (ACBrCEP, ACBrCNIEE, ACBrIBGE, ACBrBAL, ACBrLCB, ACBrRFD, ACBrSMS e ACBrValidador) . (...) Dá uma lida geral aí em tudo, olha os exemplos, veja se o componente te atende. Depois a gente vai se falando sobre dúvidas e como ir fazendo as alterações. Abraços.
×
×
  • Create New...