PARA TIRAR DÚVIDAS SOBRE O COMPONENTE UTILIZE - http://www.djsystem.com.br/acbr/forum +---------------------------------------------------------+ | | | Projeto: Componentes ACBr Versão 0.9.0b | | | | Biblioteca multiplataforma de componentes Delphi para | | interação com equipamentos de Automação Comercial | | utilizados no Brasil | | | | http://acbr.sourceforge.net | | | +---------------------------------------------------------+ INDICE 1. Descrição 2. Licença 3. Compatibilidade 4. Como executar os Demos. 5. Instalação 6. Componentes 7. Autores e Colaboradores 8. Como posso ajudar no projeto 9. Vantagens e Desvantagens 10. Tarefas que ainda precisam ser iniciadas, melhoradas ou completadas 11. Histórico do desenvolvimento -------------------------------------------------------------------------------- 1. DESCRIÇÃO ============ O mercado de automação comercial Brasileiro está em franca expansão. Vários fabricantes vem disponibilizando vários equipamentos para permitir a criação de Programas de Ponto de Venda. Entre esses equipamentos podemos citar: Impressoras Fiscais, Gavetas de Dinheiro, Impressoras de Cheque, Transferência Eletrônica de Fundos (TEF), Monitor de Bombas de Combustível, Display de Mensagens, etc. Quase todos os fabricantes disponibilizam DLL's para acesso a seus equipamentos, entretanto para uma aplicação de Automação Comercial acessar vários equipamentos são necessárias várias DLL's,o que dificulta a instalação e manutenção dos Programas. Outro problema é a não disponibilização de SO's, por parte dos Fabricantes, para acesso aos equipamentos em Linux. O objetivo desse projeto é desenvolver uma Paleta de Componentes para a Linguagem Delphi com versões VCL e CLX, que permita acesso direto a esses equipamentos, sem DLL's, interagindo com eles direto na porta serial (ou outra porta a qual eles sejam ligados). Além de permitir a programadores da Linguagem Kylix, acesso direto a esses equipamentos em Linux. -------------------------------------------------------------------------------- 2. LICENÇA ========== Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) qualquer versão posterior. Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) Por favor, leia pelo menos a Introdução do arquivo LICENÇA.TXT, se você deseja usar essa biblioteca em algum Programa Comercial, ou ainda criar uma modificação dessa Biblioteca. Porque o projeto é Open Source ? É realmente muito difícil fazer um projeto desse tamanho sozinho. Conseguir acesso a diversos equipamentos para testes, em diferentes sistemas operacionais e configurações de máquinas. Por isso acho que compartilhando minhas informações com a comunidade, também serei beneficiado... seja com sugestões, ajuda nos testes, e até mesmo com a colaboração de outros desenvolvedores. -------------------------------------------------------------------------------- 3. COMPATIBILIDADE ================== Atualmente os componentes ACBr são Compatíveis com as seguintes versões: Delphi 6, 7, 2007, 2009, 2010; Kylix 3; Lazarus (FreePascal) e C++ Builder 6 Pode haver compatibilidade com versões do Delphi 5 e inferiores, porém não foi testado... A versão CLX da Biblioteca está sendo descontinuada simultaneamente ao maior uso do Lazarus que permite que os códigos sejam utilizados no Linux. Durante o desenvolvimento em geral é usada a seguinte Plataforma: - Windows 98 SE Delphi 7 Professional - Windows XP Home SP2 Delphi 7 Professional - Linux Mandriva Lazarus 0.9.29 (FreePascal 2.4.1) (snapshots) - Conectiva 10 Kylix 3 (Patchs não oficiais para CLX DEVEM SER APLICADOS ( http://unvclx.sf.net ) -------------------------------------------------------------------------------- 4. COMO EXECUTAR OS EXEMPLOS (DEMOS) ==================================== Atualmente o ACBr ainda não possui um Manual de Ajuda ou qualquer outra docu- mentação. A melhor maneira de aprender como usar os componentes ACBr é observar o código dos Programas de demonstração... Veja o exemplo de uso dos componentes na pasta Exemplos\ Os Demos Linux precisam da biblioteca QT/Borland (libborqt-6.9-qt2.3.so) disponível no Kylix (/usr/local/kylix/bin). Para rodar os demos em uma máquina que não possua o Kylix instalado, copie a biblioteca acima para o diretório /usr/lib. Se você não possui o Kylix instalado, as bibliotecas de run-time podem ser achadas em: http://kylixlibs.sourceforge.net -------------------------------------------------------------------------------- 5. INSTALAÇÃO no DELPHI / KYLIX =============================== ATENÇAO - Caso tenha o pacote ACBr_CLX ou ACBr_VCL já instalado no Delphi, REMOVA TODOS os componentes do ACBr e TODAS as pastas do ACBr do Library Path, pois a partir de Maio de 2010 a estrutura de pastas do componente mudou e os pacotes ACBr_CLX e ACBr_VCL deixaram de existir sendo divididos em pacotes com os nomes ACBrDiversos, ACBrSerial, ACBrTCP, etc. 1. Descompacte o arquivo .ZIP na pasta de sua preferência ou faça o checkout via SVN - http://acbr.sourceforge.net/drupal/?q=node/37 2. Adicionando os diretórios no LibPath (não é necessário no Lazarus) Adicione os diretórios " Fontes\ACBrComum ", " Fontes\ACBrSerial " e os demais subdiretórios da pasta Fontes dos componentes que deseja utilizar no "Library Path". Na IDE do Delphi acione "Tools, Enviroment Options" selecione a guia "Library", clique no botão elíptico (...) de "Library Path", clique no botão elíptico (...) à frente da caixa de texto, localize a pasta " Fontes\ACBrComum" no diretório de instalação da Biblioteca, clique em "OK", e em "Add". Repita o mesmo processo com as demais pastas. Click em "OK" para finalizar. 3.1 Procure pela pasta Pacotes\Delphi e abra o arquivo synapse.dpk e clique em Compile. 3.2 Procure pela pasta Pacotes\Delphi e abra o arquivo ACBrComum.dpk e clique em Compile e depois em Install. 3.3 Procure pela pasta Pacotes\Delphi e abra o arquivo ACBrDiversos.dpk e clique em Compile e depois em Install. 3.4 Procure pela pasta Pacotes\Delphi e abra o arquivo ACBrSerial.dpk e clique em Compile e depois em Install. 3.5 Repita esses passos para os demais componentes que deseja instalar, lembrando que alguns pacotes são apenas de Run-time, e por isso não devem ser Instalados na IDE, mas apenas Compilados a fim de gerar o arquivo BPL. São eles: synapse.dpk, PCN.dpk, ACBrOpenSSL.dpk, ACBrCapicom.dpk 4. Na IDE do Delphi, clique em "File - Close All" 5. A paleta ACBr será criada com os componentes da Biblioteca ACBr. ***** Nota IMPORTANTE sobre a Versão CLX ***** - Ao iniciar um NOVO projeto em CLX adicione a clausula "VisualCLX" ou "CLX" em "Conditional Defines". - Clique em "Project", "Options" ou SHIFT-CTRL-F11 - Clique na aba "Directories/Conditionals" - Digite VisualCLX em "Conditional Defines" e clique em OK. Nota para o uso das versões VCL / CLX. Se você já instalou uma versão (VCL ou CLX) e pretende instalar a outra versão... É necessário clicar em "Project, Build ACBr...", antes de "Compile" e "Install". Isso irá gerar corretamente os arquivos DCU para a nova versão, pois alguns arquivos são compartilhados entre as duas versões... Instalação no Borland C++ Builder: ================================== # Adicione o diretório do código-fonte do ACBr à lista de diretórios de bibliotecas da IDE: 1. Na IDE, acesse o menu Tools e clique em Enviroment Options. 2. Vá até a aba Library e em Library Path, clique sobre o botão de reticências (...). 3. Na janela que se abriu (Directories), clique novamente no botão de reticências. 4. Localize o diretório onde se encontra o código-fonte do projeto ACBr e clique em OK. 5. Clique então no botão Add e então em OK. 6. Localize o diretório ACBrComum e clique em OK. 7. Clique então no botão Add e então em OK. 8. Novamente clique em OK para confirmar. # Abra, compile e instale o componente. 1. Na IDE, feche qualquer projeto aberto e abra o arquivo ACBr_BCB6.bpk. 2. Na janela que se abriu, clique em Compile. 3. Após a compilação, clique em Install. Será exibida uma mensagem sobre os componentes que foram adicionados à IDE. 4. Feche o projeto sem salvá-lo (é importante não salvar). Com isso, a instalação dos componentes da ACBr estará concluída. -------------------------------------------------------------------------------- 6. COMPONENTES ============== * IMPORTANTE * Durante a fase Beta do Projeto, alguns relases ocorrerão sem os devidos testes em alguns modelos de equipamentos. Isso por causa da dificuldade de conseguir Hardware disponível para testes. Antes de cada release, fazemos o maior esforço possível para testar o maior número de modelos, contatando Cola- boradores ou Fabricantes. Muitos fabricantes gentilmente nos ajudaram nos testes, outros nem tanto... Se você possui acesso a algum equipamento que é do escopo do projeto ACBr, SEJA VOCÊ TAMBÉM UM COLABORADOR..... Ficaremos muito gratos com a sua participação no projeto. Mesmo que você não possua um equipamento, você pode ajudar!! Veja os Itens 8 e 10 no fim desse arquivo. As descrições foram agrupadas em pacotes para que você saiba quais pacotes precisa instalar no seu caso. Fazemos uma breve descrição do pacote, e logo depois, dos seus componentes. ----------- 6.1 PACOTES PRINCIPAIS ====================== Synapse.dpk - Contém os componentes e units do Synapse que é usado para comunicação com portas seriais. Esse pacote não é instalado, apenas Compilado (Build). ACBrComum.dpk - Contém Units com comandos básicos usados por praticamente todos os componentes ACBr. Units ACBrUtil, ACBrBase, ACBrConsts, ACBrReg, etc... estão presentes nesse pacote. * ACBrEAD - Componente para Gerar Chaves RSA Privadas/Publicas, assinar e validar arquivos TXT usando a Biblioteca OpenSSL (libeay32.dll) * ACBrUtil - Unit contendo diversos procedimentos e funções úteis para aplicações comerciais ACBrCapicom.dpk - ??? Descrição ???. Esse pacote não é instalado, apenas Compilado (Build). ACBrOpenSSL.dpk - ??? Descrição ???. Esse pacote não é instalado, apenas Compilado (Build). ACBrDiversos.dpk - Contém os mais variados componentes ACBr que em geral não se encaixaram em outros pacotes. Componentes e Units: * ACBrBarCode - Componente Visual (TImage) Gerador de códigos de Barra criado usando os fontes do AJBarcode * ACBrCalculadora - Mais uma calculadora... mas com algumas frescuras a mais, como por exemplo, um Memo simulando a fita (permitindo salvar) * ACBrCMC7 - Componente que permite processar a Banda Magnética dos Cheques, Validando e convertendo de CMC7 para Banco, Agencia, Conta e vice-versa. * ACBrExtenso - Componente gerador de Valores por Extenso * ACBrFala - Processa todas as palavras de uma String, procurando por arquivos de Som correspondente a cada palavra. Permite informar Valores (Double) que são traduzidos para Extenso. Os arquivos de som podem estar em um Recurso (.RES / .LRS) ou em um diretório * ACBrTroco - Componente para calculo detalhado de Troco, informando as Cédulas e moedas necessárias. Permite editar a lista de Cédulas/Moedas. * ACBrValidador - ACBrValidador - Componente com várias funções para validar dados como CPF, CNPJ, Inscrição Estadual, etc... * ACBrEnterTab Componente somente para CLX. Tem como finalidade traduzir a tecla ENTER como se fosse a tecla TAB, para poder mudar de campos com a tecla ENTER. É necessário um ACBrEnterTab para cada Form a ser manipulado. * ACBrGIF - Permite adicionar GIFs animados a sua aplicação. Componente criado a partir dos fontes de TGif.pas de R. Collins ACBrSerial.dpk - Contém os componentes ACBr que fazem comunicação Serial. Requer pacotes: ACBrDiversos, Synapse. Componentes: * ACBrBal - Componente para interação com Balanças Eletrônicas. Através do método "LePeso : Double" é possível obter o peso aferido pela Balança. Também há a possibilidade de monitorar o envio automático de peso em balanças que possuem essa característica, ligando a propriedade booleana "MonitorarBalanca". A cada peso lido o evento "OnLePeso" será disparado. * ACBrECF - Para se comunicar com Impressoras Fiscais (ECF). A idéia é substituir os comandos da DLL por chamadas aos métodos do componente ACBrECF, com a vantagem imediata de tornar o seu código compatível a todas os Modelos de Impressoras suportadas pelo ACBrECF, apenas escolha o modelo e pronto... Inicialmente suportando os seguintes modelos: Bematech, Daruma, Schalter, Sweda, Mecaf (e compatíveis), FiscNet (Urano, Elgin, TermoPrinter,...) * ACBrETQ - Para se comunicar com impressoras de Etiquetas. Essas impressoras são normalmente usadas para impressão de códigos de barras e preços para os produtos. * ACBrGAV - Para acionamento de Gavetas de dinheiro. Com suporte a gavetas ligadas a Porta Serial, ou diretamente ao ECF ou ainda ligadas a Impressoras não Fiscais (paralela ou serial). Inicialmente suportando os seguintes modelos: Menno, Gerbô. * ACBrCHQ - Para impressão de Cheques. A impressora de cheques pode ser avulsa ou conjugada ao ECF (ECF 2 estações). Inicialmente com suporte as Impressoras de Cheque Chronos, Bematech, e todos ECF's 2 estações suportados por ACBrECF * ACBrDIS - Display de Mensagens de 2 linhas para o Cliente (fica voltado para o Cliente e exibe informações sobre a venda...). E Display de Mensagens de 2 linhas acoplado a teclados reduzidos, comunicando pela porta AT. Modelos: Gertec, Keytec * ACBrLCB - Componente que permite acesso a informação lida por Leitores de código de Barra ligados a porta serial. ACBr_TEFD.dpk - Contém o componente ACBrTEFD e as Units necessárias para seu uso. Componente: * ACBrTEFD - Componente para facilitar a comunicação de TEF Discado e Dedicado (SITEF), suportando o pagamento com múltiplos cartões. Este componente faz a criação dos arquivos de troca entre a Aplicação Comercial e os programas das Operadoras. ACBr_SPED.dpk - Contém os componentes para geração do arquivo SPED (fiscal e contábil) conforme Lei vigente. Componentes: * ACBrSPEDContabil - ???Descrição ??? * ACBrSPEDFiscal - ???Descrição ??? ACBr_PAF.dpk - Contém componentes para facilitar o cumprimento de requisitos para Programa Aplicativo Fiscal (PAF), conforme Leis vigentes. Componente: * ACBrPAF - Componente que gera arquivos necessários para homologação ACBr_Sintegra.dpk - Contém os componentes para geração do arquivo SINTEGRA conforme lei vigente. Componentes: ACBrSINTEGRA * ACBrSintegra - Componente para formatar informações no LayOut do Sintegra conforme leis vigentes. Suporta os registros 50, 60, 70, 90 etc... ACBrTCP.dpk - ??? Descrição ???. * ACBr_Boleto.dpk - ??? Descrição ???. * ACBrBoletos - ???Descrição ??? ACBr_BoletoFC_Fortes.dpk - ??? Descrição ???. * -------- 6.2 OUTROS PACOTES ================== Alem dos pacotes principais há ainda outros pacotes com objetivos diferentes ou que exigem um cuidado especial. Na pasta \pacotes\ : ACBr_D5.dpk - Esse pacote é utilizado para instalar os componentes no Delphi 5. Se você ainda utiliza o Delphi 5, esse é o pacote que deve instalar. No entanto, entenda que a maior parte dos testes está sendo feitos em versões mais novas do Delphi e/ou do Lazarus. Também existem os componentes para NFe. Para a NFe2 estão localizados na pasta \pacotes\ACBrNFe2. Caso você não for utilizar a NFe2, use os pacotes na pasta \pacotes\ACBrNFe Os mesmos são: ACBr_CTe.dpk - Conhecimento de Transporte de Carga Eletrônico. * ACBrCTe - Componente que gera, assina, valida e envia para o SEFAZ o arquivo XML contendo dados pertinentes ao conhecimento de transporte de carga eletrônico. ACBrCTeDacteQRpkg.dpk - DACTe em Quick Report * ACBrCTeDACTeQR - Componente para emissão do DACTe, Documento Auxiliar do Conhecimento de Transporte Eletrônico. ACBr_NFe.dpk - Nota Fiscal Eletrônica. * ACBrNFe - Componente que gera, assina, valida e envia para o SEFAZ o arquivo XML contendo dados pertinentes a nota fiscal eletrônica. ACBrNFeDanfeQRpkg.dpk - DANFe em Quick Report * ACBrNFeDANFeQR - Componente para emissão do DANFe, Documento Auxiliar da Nota Fiscal Eletrônica. ACBrNFeDanfeRLpkg.dpk - ??? Descrição ??? ACBrNFeDanfeRV.dpk - ??? Descrição ??? ACBrNFeDanfeRVCodeBase.dpk - ??? Descrição ??? PCN.dpk - ??? Descrição ??? Observação: Na pasta \pacotes\ACBrNFe2 os pacotes: ACBr_NFe.dpk e PCN.dpk foram renomeados para: ACBr_NFe2.dpk e PCN2.dpk. ------------------- 6.2 COMPONENTES EM DESENVOLVIMENTO OU DESCONTINUADOS ==================================================== Os seguintes pacotes e componentes, embora ainda estejam no ACBr, já não estão sendo atualizados mais ou ainda, são componentes que estão em desenvolvimento e precisam ser testados. Talvez você queira ajudar no desenvolvimento e a testar. ACBrBombas - Para trabalhar como monitor de bombas de Combustível, se comunicando com concentradores, lendo os abastecimentos gerados, alterando os preços das Bombas, etc... A comunicação pode ser feita por meio de porta Serial, TCP ou DLL dependendo do modelo. Modelos suportados: CompanyTec (DLL). **ATENÇÃO*** Este componente está em fase de Construção e Testes e assim NÃO está em nenhum pacote atualmente. ACBrTEF - Componente para facilitar a criação dos arquivos de troca entre a Aplicação Comercial e os programas das Operadoras. (Experiência apenas com TEF Discado e não funciona com múltiplos cartões) **** o ACBrTEF foi DESCONTINUADO!!! Use o componente ACBrTEFD ***** -------------------------------------------------------------------------------- 7. AUTORES E COLABORADORES ========================== Por favor leia: "ACBr-change-log.txt" -------------------------------------------------------------------------------- 8. COMO POSSO AJUDAR NO PROJETO =============================== Se você possui experiência em Automação comercial e deseja ajudar, junte-se a nós... ficaremos muito contentes com a sua ajuda. * Testando os Componentes: Fizemos o possível para eliminar os bugs mais óbvios... mas em ambientes diferente bugs novos podem aparecer. Ao encontrar um bug, por favor envie-nos um e-mail com os seus testes. Mesmo que tudo dê certo ainda assim gostaríamos da sua opinião... * Divulgando o ACBr: Quanto maior o uso da biblioteca mais usuários podem ajudar. Se a biblioteca for bem conhecida e utilizada os Fabricantes de equipamentos de Automação Comercial terão maior interesse em ajudar no desenvolvimento. * Desenvolvendo Componentes: Alguns componentes como o ACBrECF deverão ser implementados para vários modelos de equipamento. Se o equipamento que você deseja não consta na relação de Equipamentos a compatíveis você pode estudar os Fontes e tentar implementar uma nova Classe para o seu Equipamento (Por favor, entre em contato antes) * Emprestando Equipamentos: Nem sempre temos acesso aos Equipamentos para testes e melhorias. Se você é um fabricante ou possui um equipamento disponível para empréstimo, entre em contato Em breve estarei relacionando os equipamentos que necessitam de testes... * Efetuando Doações: Atualmente a Biblioteca é desenvolvida no tempo livre disponível dos Desenvolvedores.... Doações podem motivar os desenvolvedores a destinar mais tempo para o andamento do projeto.... pois é... até mesmo os programadores precisam comer.... ;-) Para efetuar doações veja http://acbr.sourceforge.net/drupal/?q=node/14 -------------------------------------------------------------------------------- 9. VANTAGENS E DESVANTAGENS =========================== Vantagens: - Multiplataforma: Linux / Windows - Programação Limpa e Clara: Basta inserir um componente ACBrECF no seu projeto e configurar o Modelo. O Código fonte sempre irá se referir a esse componente, sem se preocupar com implementações específicas de cada Modelo. - Total controle da Aplicação: Já vi DLL's que simplesmente param o proces- samento do programa (Quem já homologou TEF discado, sabe o que eu quero dizer...) - Fácil distribuição: Não precisa distribuir e instalar nenhuma DLL - Livre-se do Inferno das DLL's. (Quando o usuário instala outro programa que usa a mesma DLL que você usa, porém em uma versão antiga (causando Bugs no seu programa) ) Desvantagens: - Se o hardware mudar, ficamos dependendo de novas informações do fabricante, ou até mesmo de um modelo do equipamento para testes... - Geralmente as DLL's incorporam novos Hardwares do mesmo fabricante.... Aqui teremos que implementar um novo filho das classes Básicas para cada Hardware novo (somente se o novo hardware não for compatível com o antigo) -------------------------------------------------------------------------------- 10. TAREFAS QUE AINDA PRECISAM SER INICIADAS, MELHORADAS OU COMPLETADAS ======================================================================= - Manual dos componentes existentes - ACBr.DLL / ACBr.SO (com todos os componentes, permitindo o uso do ACBr em outras linguagens) - Demos mais bem elaborados - Novos métodos e propriedades em ACBrECF - Conversão para .NET / Java -------------------------------------------------------------------------------- 11. HISTÓRICO DO DESENVOLVIMENTO ================================ Por favor, leia o arquivo: "ACBr-change-log.TXT"