Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 10-10-2019 em todas as áreas
-
Bom dia, BigWings realmente emiti uma nota com o mesmo numero e a sefaz me retornou a chave que estava cadastrada la. assim emiti uma nota de entrada e matei a nota. agradeço pelo apoío, tenham um bom trabalho.3 pontos
-
Não precisa ser por tentativa e erro, basta gerar a chave mesmo com código numérico diferente e fazer uma consulta pela chave gerada. A SEFAZ vai retornar erro de diferença na chave de acesso e informar a chave correta. @centuryinf, veja a função GerarChaveAcesso da unit ACBrDFeUtil.pas.3 pontos
-
As opções de geração de logs do monitor estão ativadas? Se estiverem, tente desativar e veja se há melhora.3 pontos
-
2 pontos
-
Boa tarde David, Esse erro normalmente ocorre quando o XML enviado para o webservice não possui ou possui algo que não deveria ter. Entre em contato com o provedor e solicite um XML envelopado de exemplo para que possamos comparar com o que o componente esta gerando.2 pontos
-
Boa tarde a todos, Muito obrigado pela colaboração, ainda hoje será enviado para o repositório.2 pontos
-
Boa tarde a todos, No caso do DACTE feito em Fortes Report devemos alimentar o tpMed da seguinte forma: if uppercase(trim(fpCTe.infCTeNorm.InfCarga.InfQ.Items[i].tpMed)) = 'PESO BRUTO' then rlmQtdUnidMedida1.Lines.Add(FormatFloatBr(msk6x4, fpCTe.infCTeNorm.InfCarga.InfQ.Items[i].qCarga)) else if uppercase(trim(fpCTe.infCTeNorm.InfCarga.InfQ.Items[i].tpMed)) = 'PESO BASE DE CALCULO' then rlmQtdUnidMedida2.Lines.Add(FormatFloatBr(msk6x4, fpCTe.infCTeNorm.InfCarga.InfQ.Items[i].qCarga)) else if uppercase(trim(fpCTe.infCTeNorm.InfCarga.InfQ.Items[i].tpMed)) = 'PESO BC' then rlmQtdUnidMedida2.Lines.Add(FormatFloatBr(msk6x4, fpCTe.infCTeNorm.InfCarga.InfQ.Items[i].qCarga)) else rlmQtdUnidMedida3.Lines.Add(FormatFloatBr(msk6x4, fpCTe.infCTeNorm.InfCarga.InfQ.Items[i].qCarga)); Note que ele compara com as seguintes strings: "PESO BRUTO", "PESO BASE DE CALCULO" e "PESO BC"2 pontos
-
Bom dia, Contribuindo para este tópico, fiz os ajustes também nos arquivos Cidades.ini e ISSNet.ini. Seguem anexo. Cidades.ini ISSNet.ini2 pontos
-
2 pontos
-
2 pontos
-
Carregamento das dependências de dll nativas seguem o protocolo de procurar nos Paths, isso é o comportamento normal não tem como alterar. A sequencia é sempre path do exe primeiro, depois paths do windows. Você pode fazer uma chamada no inicio do seu exe para definir o path para a pasta correta que ela será usada na procura por dll, utilizando o codigo abaixo. var path = Assembly.GetExecutingAssembly().CodeBase; path += Environment.Is64BitOperatingSystem ? "ACBrLib\\x64\\" : "ACBrLib\\x86\\"; Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process); Com isso nem se faz necessário alteração na classe atual. Você também pode colocar as libs como resources e extrai-las de acordo com o OS dentro do path do programa, o bom desta opção é que você garante sempre que a lib que esta sendo usada é a versão a qual você testou.2 pontos
-
Show de bola @BigWings, não sabia desse retorno com a chave correta. Boa!2 pontos
-
Ola, tem vários tópicos referente essa validação do MDFe , faça uma pesquisa q ira encontrar. Regra de validação do MDFe , conforme manual MDFe 3.00a, para transportes com veiculo de terceiros, o proprietario do veiculo tem que possuir RNTRC vinculado ao veiculo.2 pontos
-
Algumas alternativas ... 1- Tentar recriar a chave de acesso Se seu sistema segue algum algoritmo para gerar o código numérico essa alternativa vai funcionar. Se seu sistema usa um código numérico randômico teria que ser por tentativa e erro (praticamente inviável). 2- Se você sabe quem é o destinatário da NFe, tentar verificar se ele tem sistema de Manifestação de NFe. Se ele tiver, irá receber a NFe que seu cliente emitiu, aí pegar a chave com ele 3- Fazer uma solicitação à SEFAZ autorizadora para obter a chave da NFe2 pontos
-
Claro que gosto musical é bem particular e peculiar, mas sugiro eletrônica com 160 bpm ou mais...2 pontos
-
1 ponto
-
1 ponto
-
Blz, funcionou depois que eu coloquei os schemas para a versão 3.00a. O post do Italo foi fundamental para eu perceber que era esse o problema. Obrigado pela ajuda.1 ponto
-
1 ponto
-
Marcelo, Temos que tomar cuidado, pois algumas SEFAZ não atualizam os seus avisos / noticias. Que eu saiba todos tem que estar gerando o XML segundo a versão 1.00b. Informações atualizadas e precisas: https://dfe-portal.svrs.rs.gov.br/1 ponto
-
Boa tarde Adilson, Se a sua aplicação foi compilada para 32 bits, basicamente você precisa das DLLs: ...\DLLs\LibXml2\x86 ...\DLLs\OpenSSL\1.0.2.19\x86 Procure sempre copiar essas DLLs para dentro da pasta que se encontra o seu EXE.1 ponto
-
Boa tarde Charles, Você esta com todos os fontes de todas as pastas atualizados? Se sim, reinstalou a suíte ACBr?1 ponto
-
1 ponto
-
Na verdade o Delphi apenas chama a API do Windows, e ela faz a carga da DLL... e o primeiro local (e mais seguro), que o Windows procura, é na mesma pasta do EXE https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order1 ponto
-
Pelo visto no log de build faltou incluir o projeto ACBr Common, por isso os vários erros de classes não encontradas, o mesmo se encontra na pasta raiz dos demos em java. Obs.: Por favor quando postar log favor anexar ao posto facilita a leitura do problema.1 ponto
-
Pessoal, o erro está no ..\Fontes\ACBrDFe\ACBrDFeReport.pas foi alterado na revisão 17729 de: procedure TACBrDFeReport.SetPathPDF(const Value: String); begin FPathPDF := PathWithDelim(Trim(Value)); end; para: procedure TACBrDFeReport.SetPathPDF(const Value: String); begin FPathPDF := PathWithDelim( ExtractFilePath(Trim(Value)) ); end; Voltei e funcionou perfeitamente. ACBrDFeReport.pas1 ponto
-
Bom dia // GLOBAL gnretorno_acbr is int gsarquivo_ini is string="" // acbrlib.ini // PROCEDURE ACBR_INICIALIZAR() gnretorno_acbr=API("ACBrNFe32.DLL","NFE_Inicializar",StringToUTF8(gsarquivo_ini),"") IF gnretorno_acbr=0 THEN RESULT True ELSE Info("erro retorno"+CR+gnretorno_acbr) END ,1 ponto
-
Bom dia. Vocês continuam com problemas? Notem que nos últimos dias publicamos um aviso de erro semelhante no qual a própria SEFAZ fez recomendações. Att.1 ponto
-
A primeira imagem é Fortes e não EscPos... Tente os modelos novos Star, ZJiang, GPrinter, etc..1 ponto
-
1 ponto
-
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.1 ponto
-
Configure a versão do webservice e modelo do documento antes de realizar a consulta. ACBrNFe1.Configuracoes.Geral.ModeloDF := moNFCe; ACBrNFe1.Configuracoes.Geral.VersaoDF := ve400;1 ponto
-
1 ponto
-
1 ponto
-
Rafael... muito grato.. a minha versao do cobol, ainda nao tem essa funcao... somente na + atual.1 ponto
-
1 ponto
-
Olá pessoal, A SEFAZ-MS esta passando por instabilidade no processamento de CT-e, a recomendação é que os CT-e sejam enviados para a SVC-RS. Leia a noticia da SEFAZ-MS na integra. http://www.cte.ms.gov.br/instabilidade-do-ambiente-autorizador-do-ct-e-autorizar-via-svc-rs/ Favor atualizar todos os fontes de todas as pastas e reinstalar a suíte ACBr, pois foi necessário fazer um ajuste no código do componente conforme a recomendação da SEFAZ-MS. Lembre-se de que para enviar para o SVC é preciso fazer duas coisas: Primero configurar o componente: // (AC,AL,AP,AM,BA,CE,DF,ES,GO,MA,MT,MS,MG,PA,PB,PR,PE,PI,RJ,RN,RS,RO,RR,SC,SP,SE,TO); // (12,27,16,13,29,23,53,32,52,21,51,50,31,15,25,41,26,22,33,24,43,11,14,42,35,28,17); case rgTipoEmissao.ItemIndex of 0: ACBrCTe.Configuracoes.Geral.FormaEmissao := teNormal; 1: if ACBrCTe.Configuracoes.WebServices.UFCodigo in [14, 16, 26, 35, 50, 51] then ACBrCTe.Configuracoes.Geral.FormaEmissao := teSVCRS else ACBrCTe.Configuracoes.Geral.FormaEmissao := teSVCSP; end; Segundo alimentar corretamente o componente: // (AC,AL,AP,AM,BA,CE,DF,ES,GO,MA,MT,MS,MG,PA,PB,PR,PE,PI,RJ,RN,RS,RO,RR,SC,SP,SE,TO); // (12,27,16,13,29,23,53,32,52,21,51,50,31,15,25,41,26,22,33,24,43,11,14,42,35,28,17); case rgTipoEmissao.ItemIndex of 0: Ide.tpEmis := teNormal; 2: if ACBrCTe.Configuracoes.WebServices.UFCodigo in [14, 16, 26, 35, 50, 51] then Ide.tpEmis := teSVCRS else Ide.tpEmis := teSVCSP; end;1 ponto
-
Boa tarde Temos outros tópicos sobre este assunto, por isso este será fechado. De qualquer forma seguem orientações em nossa sessão de noticias. Att.1 ponto
-
A Epson está lançando a impressora térmica TM-T20X, e nos enviou as 2 novas versões (Vesão USB/Serial e Versão Ethernet) deste equipamento para homologarmos com os componentes do Projeto ACBr. Assista ao vídeo abaixo para conhecer a nova impressora: Apresentação do equipamento. Download e instalação de drivers. Rápida configuração no SATTeste e impressão. Ambiente Computador Desktop Sistema Operacional Windows 10 64Bit Processador Intel Core 2 Duo E4500 2.20GHz Memória 2GB USB 2.0 Características Técnicas da Impressora Método de impressão Impressão térmica em linhas Velocidade de impressão Aprox. 200 mm/s (Textos e gráficos) Guilhotina Corte parcial ao centro Opções de Comunicação USB 2.0 Full-speed (12 Mbps) Ethernet: 10BASE-T/100BASE-TX Serial: RS-232 Pontos por polegadas 203 × 203 dpi Caixa registradora Suporte a 2 gaveteiros Fonte de alimentação 100-240V 50/60Hz, Corrente nominal: 1.0 A Dimensões W:149 × D:192 × H:140 mm Peso Approx. 1.5 kg Código de barras UPC-A UPC-E JAN 8 (EAN 8 ) JAN 13 (EAN 13) CODE 39 ITF CODABAR (NW-7) CODE 93 CODE 128 GS1-128 GS1 DataBar (Omnidirectional, Truncated, Stacked, Stacked Omnidirectional, Limited, Expanded, Expanded Stacked. Código Bidimensional PDF417 QR CODE, MaxiCode Composite Symbology Vida útil Mecanismo de Impressão 15 milhões de linhas Cabeça térmica de impressão 100 KM Guilhotina 1,5 milhões de cortes Tempo médio antes da falha (MTBF): 360.000 horas Média de ciclos antes da falha(MCBF): 60.000.000 linhas Download de Drivers e manuais No link abaixo você encontra todos os drivers disponíveis para a nova TM-T20X. https://download.epson-biz.com/modules/pos/?page=prod&pcat=3&pid=6073 Drivers utilizados durante os testes: Driver de Spooler do Windows Bibliotecas Epson (.dll .lib e .so) Software Utilitario TM Virtual Port Driver (Emula Porta COM) Driver Linux Impressão de Autoteste O autoteste fornece as configurações atuais da impressora, e por ele também é possível alterar estas configurações. Siga os passos abaixo para realizar a impressão do Autoteste. Com a impressora desligada, mantenha pressionado o botão Avanço de Papel (manter pressionado até o início da impressão) e ligue a impressora Quando a impressora parar de imprimir, a luz Paper ficará piscando; Pressione o botão Avanço de Papel para imprimir a segunda parte do teste e finalizar; Caso queira alterar alguma configuração, no passo 2 descrito acima, pressione o botão Avanço de Papel por 1 segundo, será impresso as opções, selecione a opção que deseja pressionando o botão Avanço de Papel na quantidade de vezes requerido pela opção e em seguida o botão Avanço novamente pressionado por 1 segundo para confirmar. Interfaces de comunicação Com os dois modelos da TM-T20x, foi possível testar todos os tipos de comunicação possíveis, acompanhe na tabela abaixo quais são e como configurá-las. Tipo Configuração (Exemplo) USB/RAW RAW:EPSON TM-T20X USB/Com Emulada COM 4 USB/DLL USB:EPSON saCOM FÍSICA COM 1 Ethernet TCP:192.168.20.27:9100 Configurações de comunicação USB – Spooler do Windows Para instalar o driver em ambiente Windows, basta fazer o download de acordo com Sistema Operacional e executá-lo, ao fim da instalação, será aberto uma janela para adicionar a impressora, escolha o 1- tipo de comunicação e clique em 2- Save Settings, clique em 3- Test Print para imprimir uma página de teste . A impressora aparecerá em “Dispositivos e Impressoras”. Na imagem abaixo é possível verificar os passos descritos: USB – COM Emulada Para comunicação via COM Emulada, após a instalação como mostrado acima, faça o download e execute o instalador do TM Virtual Port Driver. Ao finalizar a instalação, execute o aplicativo Epson TM Virtual Port Assignment Tool Escolha uma porta para vincular a impressora e clique em “Assign Port” Na janela que abrirá, selecione a aba “Command Emulation” e habilite a opção “Enabled ESC/POS Command Emulation”. Selecione OK para salvar, pronto será criada uma porta com virtual e sua impressora estará vinculada a ela. USB/DLL Neste tipo de comunicação não é necessário realizar a instalação de driver, basta fazer o download da DLL e copia-lo para a pasta do componente. No demo PosPrinterTeste por exemplo basta configurar a comunicação como USB:EPSON, observe o exemplo na imagem abaixo: Serial RS-232 A comunicação com porta COM Física também não depende de instalação de driver. Veja em Cabo Serial deste relatório, o cabo correto para a comunicação. Para configurar a porta serial no componente ACBrPosPrinter realize as configurações a seguir. Selecione a Porta COM Selecione a opção de Configurações da Porta Realize os ajustes Baud rate: 38400 – Este é o padrão de fábrica desta impressora. Data Bits: 8 Parity: None Stop Bits: 1 Handshaking: DTR/DSR Buffer de Envio: 3000 Espera de Buffer: 200 Salve as configurações Os ajustes de Buffer são necessários para impressões de extratos com grande quantidades de itens, caso não configurados corretamente a impressão pode não ocorrer por completo. Ethernet A configuração da TM-T20X em rede é muito simples, conecte um cabo de rede na porta Ethernet e ligue a impressora, aguarde por aproximadamente 10 segundos, pois será impresso o IP que a impressora obteve do servidor DHCP. Para fixar um IP, abra o navegador e digite o IP impresso para acessar as configurações da impressora, será solicitado um usuário e senha, o padrão de fábrica é “epson” para ambos. No menu de configuração, selecione a opção TCP/IP. Na opção “Acquiring the IP Address” altere para “Manual” e em seguida, realize as configurações conforme sua rede. Para finalizar clique em SEND e em seguida clique em RESET, para enviar e reiniciar a impressora. Exemplo dos passos citados: No PosPrinter configure a porta de comunicação TCP com o IP fixado na impressora, EX: TCP: 192.168.20.27 Veja o exemplo de configuração na imagem abaixo: Gravação de Logo Esta impressora permite gravar múltiplos logos em sua memória, gravamos então um logo do ACBR para ser utilizado durante os testes de impressões, veja abaixo como gravar um logo utilizando o PosPrinterTeste.exe. Selecione a opção Carregar Imagem e escolha a imagem que deseja gravar (Formato BMP) Selecione a posição onde será gravado. (Os valores utilizados abaixo são um exemplo, é possível definir valores diferentes, onde cada imagem fique em uma posição.) Ex: KC1: 32 KC2: 32 Selecione a opção Gravar Logo Para verificar se gravou com sucesso, selecione IMPRIMIR Acompanhe na imagem abaixo o exemplo dos passos citados: Testes de Impressões Os testes de impressões tem como objetivo verificar se o equipamento pode imprimir todas as “Tags” possíveis. Para a realização destes testes utilizamos os componentes e demos do ACBr. Acompanhe as configurações utilizadas para a realização dos testes de impressão. Configurações utilizadas no demo PosPrinterTeste.exe para os testes de impressão das tags. Modelo: ppEscPosEpson; Porta RAW:EPSON TM-T20X Receipet Colunas: 48; Espaços: 40; Linhas Pular: 5; Pag. codigo: pc860; Logo: KC1: 32; KC2: 32; FatorX: 1; FatorY: 1; Exemplo de configuração no demo PosPrinterTeste: Resultados das impressões Formatação de carácter: Todas as propriedades funcionaram corretamente, exceto a fonte itálico (Já não era suportada na TM-T20). Alinhamento: Os alinhamentos foram impressos corretamente. QRCode: Todos QRCode impressos corretamente. Código de Barras: Os tipos std25, CODE11 e MSI não foram impressos (Mesmo comportamento da TM-T20). Logotipo: Logo impresso corretamente. Page Mode: Como podemos observar o Page Mode é suportado. Testes de Acentuação Utilizando um pantograma da língua portuguesa, realizamos diversas impressões com diferentes páginas de código, usando as fontes do Tipo A e B. Pantograma utilizado: À noite, vovô Kowalsky vê o ímã cair no pé do pingüim queixoso e vovó põe açúcar no chá de tâmaras do jabuti feliz. ÁÉÍÓÚáéíóúçÇãõÃÕÊêÂâÔôÀà Resultados obtidos: pc437: Todos os til foram ignorados; pc850: Todos os acentos foram impressos corretamente; pc852: Alguns acentos circunflexos, todas as crases e o til foram ignorados; pc860: Todos os acentos foram impressos corretamente; pcUTF8: Esta impressora não suporta UTF8; pc1252: Todos os acentos foram impressos corretamente; Impressão de extratos do SAT Utilizando o demo SATTeste, testamos a impressão de extratos de venda com 3 itens, as impressões foram realizadas em Fortes Report e em EscPOS, com as opções Logo Lateral e QRCode Lateral, desativadas e posteriormente ativadas. Tela de configuração de Impressão do SATTeste: Cupom Fortes: Cupom Esc/POS: QRCode e Logo Lateral ativados: Cupom Fortes: Cupom Esc/POS: Leitura de Status Realizamos testes de “Leitura de Status” através das conexões de porta COM Física e COM/Emulada, veja abaixo os resultados das leituras realizadas. Status Porta COM/Emulada Porta COM Física Pronta par uso Nenhum erro Encontrado Nenhum erro Encontrado Tampa Aberta StOffline, stTampaAberta StOffline, stTampaAberta Pouco Papel Nenhum erro Encontrado Nenhum erro Encontrado Sem Papel StSemPapel, stOffline StSemPapel, stOffline Gaveta Aberta stGavetaAberta stGavetaAberta Leitura de Informações O resultado do comando para Leitura de Informações, foi retornado corretamente nos três tipos de conexões testados. COM FÍSICA COM EMULADA ETHERNET Fabricante=EPSON Firmware=10.01 ESC/POS Modelo=TM-T20X Serial=X5Z7000035 Guilhotina=1 Fabricante=EPSON Firmware=10.01 ESC/POS Modelo=TM-T20X Serial=X5Z7000035 Guilhotina=1 Fabricante=EPSON Firmware=13.02 ESC/POS Modelo=TM-T20X Serial=X5Z8000018 Guilhotina=1 TAG de Gaveta Abertura de gaveta funcionou como esperado, através da conexão com RJ11. TAGS ENVIADAS: Abertura da Gaveta padrão </abre_gaveta> Abertura da Gaveta específica <abre_gaveta>1</abre_gaveta> </corte_total> Teste de Desempenho Utilizando o demo SATTeste calculamos o tempo médio que o equipamento leva para imprimir extratos de venda, é cronometrado desde que se inicia a impressão do extrato até o corte final do mesmo, incluímos também neste relatório a quantidade de papel impresso para cada quantidade de itens. ATENÇÃO: Este teste difere dos realizados anteriormente, onde era calculado o tempo de envio da impressão do componente para o equipamento e não o tempo de impressão propriamente. Configuração de impressão do SATTeste: Tipo de conexão: USB/RAW Logo Lateral: Ativo Espaços entre linhas: 40 QRCode Lateral: Ativo Linhas à pulas: 5 Colunas: 48 Logo Lateral: Ativo Espaços entre linhas: 40 QRCode Lateral: Ativo Tabela de Resultados: NOTA: Resultados em milisegundos. Em uma comparação com o modelo TM-T20, imprimindo extratos de 100 e 200 itens, é possível observar o quanto a TM-T20X é mais rápida que sua antecessora. Ambas impressoras com a configuração “Printing Speed” em Level 13 (Fast). A nova TM-T20X foi desenvolvida com foco em performance, elevando sua velocidade de impressão. Em uma comparação com sua antecessora, é possível observar que o novo modelo diminui um pouco a nitidez da impressão, o que não atrapalha a leitura do cupom, esta diferença é perceptível quando ambas são impressas em modo Default (Padrão de Fábrica), porém se este for um fator crucial para sua operação, é possível diminuir o Printing Speed para 5 com uma densidade de impressão para 7, melhorando a nitidez. Veja como realizar esta alteração seguindo as orientações descritas em Autoteste, ou altere direto pelo software Epson TM-T20X Utility. Veja abaixo a alteração da velocidade de impressão e densidade mencionadas acima, no software utilitário Epson. Considerações Esta nova impressora da Epson se diferencia nos seguintes aspectos da TM-T20. Tamanho um pouco menor Mais leve Design moderno e atualizado Velocidade de impressão Porta serial RS-232 O Painel de indicações da impressora saiu da parte superior e foi para a parte frontal, próximo ao botão power, uma vantagem nesta linha de impressoras é a característica da fonte (Bivolt) ser embutida no equipamento, não sendo necessário uma fonte externa. Sua instalação e configuração de drivers é simples em Windows ou Linux, basta apenas instalar o driver fornecido pelo fabricante. (Lembrando que a porta de comunicação pode ser escolhida de acordo com o uso aplicado ao equipamento.) A TM-T20X é compatível com o driver da TM-T20, pois em casos onde a TM-T20 já está instalada, basta trocá-la pela TM-T20X. Tanto a porta COM FÍSICA quanto a EMULADA retornaram os “Status de Impressora” corretamente, é preciso se atentar as configurações de buffer, pois extratos com grande quantidade de itens é necessário configurar o Buffer de Envio e Espera de Buffer, caso contrário a impressão não será completa. Nos testes de impressões a impressora se comportou muito bem, imprimindo várias páginas de código, formatação de carácter, alinhamento, page mode e todos os qrcodes, na impressão de código de barras seu comportamento foi semelhante ao da TM-T20 não imprimindo os tipos std25, CODE11 e MSI. Nas impressões de acentuação foi possível observar que a impressora não suporta UTF8. Analisando os testes de velocidade de impressão, podemos ver que este equipamento se sai muito bem neste quesito levando apenas 4 segundos para imprimir um cupom de 200 itens, diferença de quase 1s se comparada com o modelo TM-T20, é importante também se atentar a quantidade de papel gasto em cada teste aplicado. A impressora TM-T20X será comercializada em 2 modelos, com conexões USB/Serial e outra versão somente Ethernet. Porém a Versão com USB/Serial só contém o cabo USB, o cabo serial não acompanha o equipamento. Outras especificações Fontes de impressão: Fonte A: 12 pts. x 24 pts. | Fonte B: 9 pts. x 17 pts. (largura x altura) Capacidade de colunas: Padrão: largura do papel 80 mm: Fonte A: 48 colunas | Fonte B: 64 colunas; Modo de 42 colunas: largura do papel 80 mm: Fonte A: 42 colunas | Fonte B: 60 colunas Tamanho dos caracteres: Fonte A: 1,25 mm x 3 mm | Fonte B: 1,88 mm x 2,13 mm (largura x altura) Conjunto de caracteres: 95 alfanumérico, 18 conjuntos de caracteres internacionais, 128 x 43 gráficos estendidos. Instalação Linux Testamos também a impressora em ambiente Linux OpenSuse Tumbleweed versão 20190810. Veja abaixo como configurar a impressora neste ambiente: 1- Abra um terminal e digite o comando a seguir: dmesg –follow 2- Conecte a impressora ao computador. É possível observar como será reconhecida a impressora, em nosso exemplo foi reconhecida como “usblp0” 3- Verifique no diretório dev se foi criado o arquivo de comunicação com a impressora. ls /dev/usb/ 4- Para testar envie um teste direcionando para a porta criada. echo “Teste de Impressão Projeto ACBr” > dev/usb/lp0 5- Basta configurar a porta /dev/usb/lp0 no componente. Veja na imagem abaixo o comandos citados acima: Anexos Cabo Serial Para quem deseja utilizar comunicação serial, segue esquema de pinagem para compra ou confecção do cabo, observe que as duas pontas são fêmeas.1 ponto
-
Bom dia Testei agora compilando o componente com a opção OpenSSL desmarcada e agora funciona. Isso só vai gerar o problema de enviar as DLLs para todo mundo que usa a NFS-e, mas resolvido foi.1 ponto
-
Ficou ótimo Murilo, acabei removendo uns campos como motorista e forma de pagamento porque foram excluidos da versão 3.0, aproveitei e aumentei a OBS, caso queiram utilizar esse, segue em anexo. DACTE2vias.fr31 ponto
-
Testei o anexo, funcionou perfeitamente, obrigado.1 ponto
-
Boa tarde amigo, Vc está usando a CLASSE desenvolvida pelo Rafael ou a DLL direta? Se for a CLASSE , além do exemplo que ele disponibilizou, para o formato INI, eu fiz alguns exemplos xHarbour usando a CLASSE, só que eu gero o XML e não arquivo INI, mas de qualquer forma vou disponibilizar alguma coisa aqui, segue abaixo: Exemplos de comando e configuração sat := ACBrSat():New("", "") sat:ConfigGravarValor("Principal", "LogNivel", "4") sat:ConfigGravarValor("SAT", "Modelo", "2") sat:ConfigGravarValor("SAT", "ArqLog", "C:\windows\temp\satlog") sat:ConfigGravarValor("SAT", "NomeDLL", "C:\ACBrMonitorPLUS\SAT\elgin\dllsat.dll") sat:ConfigGravarValor("SAT", "CodigoDeAtivacao", "123456789") sat:ConfigGravarValor("SAT", "SignAC", "SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT") sat:ConfigGravarValor("SATConfig", "ide_numeroCaixa", "3") //ide_numeroCaixa Define o numero de caixa padrão da CFe. sat:ConfigGravarValor("SATConfig", "ide_tpAmb", "0") //ide_tpAmb taProducao = 0 taHomologacao = 1 sat:ConfigGravarValor("SATConfig", "EhUTF8", "") //EhUTF8 Define se devemos utilizar codificação UTF8 ao se comunicar com o SAT. sat:ConfigGravarValor("SATConfig", "infCFe_versaoDadosEnt", "0,07") //infCFe_versaoDadosEnt Define qual será a versão do CFe utilizada.Ex.: 0,07 ou 0,08 sat:ConfigGravarValor("SATConfig", "PaginaDeCodigo", "0") //PaginaDeCodigo Define a pagina de código que se deve utilizar ao se comunicar com o SAT. sat:ConfigGravarValor("SATConfigArquivos", "PastaCFeVenda", "X:\acbr\NFESAI\AUTORIZA\59") //PastaCFeVenda Define o caminho onde será salvos os arquivos de venda. sat:ConfigGravarValor("SATConfigArquivos", "SalvarCFe","0" ) //SalvarCFe Define se será salvo o arquivo de venda. sat:ConfigGravarValor("SATConfigArquivos", "SalvarCFeCanc", "0") //SalvarCFeCanc Define se será salvo o arquivo de cancelamento. sat:ConfigGravarValor("SATConfigArquivos", "SalvarEnvio", "0") //SalvarEnvio Define se será salvo o arquivo de envio para o sat. //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorCNPJ", "0") //SepararPorCNPJ Define se deverá separar os arquivos por CNPJ. //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorModelo", "0") //SepararPorModelo Define se deverá separar os arquivos por modelo. //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorAno", "0") //SepararPorAno Define se deverá separar os arquivos por ano. //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorMes", "0") //SepararPorMes Define se deverá separar os arquivos por mês. //sat:ConfigGravarValor("SATConfigArquivos", "SepararPorDia", "0") //SepararPorDia Define se deverá separar os arquivos por dia. sat:ConfigGravarValor("SATConfig", "ide_CNPJ", "14200166000166") //ide_CNPJ Exemplo da elgin: 16716114000172 Define o padrão CNPJ do emitente da CFe. sat:ConfigGravarValor("SATConfig", "emit_IE", "144842258111") //emit_IE Define o IE padrão do emitente do CFe. //sat:ConfigGravarValor("SATConfig", "emit_IM", "inscricao municipal do emitente") //emit_IM Define o IM padrão do emitente do CFe. sat:ConfigGravarValor("SATConfig", "emit_cRegTrib","0") //emit_cRegTrib RTSimplesNacional = 0 RTRegimeNormal = 1 sat:ConfigGravarValor("SATConfig", "emit_cRegTribISSQN", "6") //emit_cRegTribISSQN RTISS MicroempresaMunicipal = 0 sat:ConfigGravarValor("SATConfig", "emit_indRatISSQN", "0") //emit_indRatISSQN Define indicador de rateio do desconto sobre subtotal entre itens sujeitos a sat:ConfigGravarValor("SATConfig", "emit_CNPJ", "16716114000172") //emit_CNPJ Exemplo da elgin: 14200166000166 Define o CNPJ padrão do emitente da CFe. sat:ConfigGravarValor("SATRede", "tipoInter", "0") //0 = infETHE sat:ConfigGravarValor("SATRede", "tipoLan", "0") sat:ConfigGravarValor("Extrato", "LarguraBobina", "302") //LarguraBobina Define a largura da bobina. sat:ConfigGravarValor("Extrato", "MargemSuperior", "2") //MargemSuperior Define a margem superior da impressão. sat:ConfigGravarValor("Extrato", "MargemInferior", "4") //MargemInferior Define a margem inferior da impressão. sat:ConfigGravarValor("Extrato", "MargemEsquerda", "2") //MargemEsquerda Define a margem esquerda da impressão. sat:ConfigGravarValor("Extrato", "MargemDireita", "2") //MargemDireita Define a margem direita da impressão. sat:ConfigGravarValor("Extrato", "Tipo", "0") //TipoDefine o tipo de impressão a ser utilizada.tpFortes = 0 tpEscPos = 1 //sat:ConfigGravarValor("Extrato", "Impressora", "nome a impressora para emissão do cupom") //Impressora Define o nome da impressora padrão a ser utilizada pela impressão. sat:ConfigGravarValor("Extrato", "ImprimeChaveEmUmaLinha", "0") //ImprimeChaveEmUma Define se deve imprimir a chave do CFe em apenas uma linha. Dll's Necessárias , a quais podem ser baixadas por qualquer usuário Sac do Acbr. ACBrSAT32.dll ACBrSAT64.dll libeay32.dll libexslt.dll libiconv.dll libxml2.dll libxslt.dll msvcr120.dll ssleay32.dll Espero que seja útil. []s,1 ponto
-
Você já conhece o ACBrMTer ? Ele é um componente do pacote ACBrTCP, que permite construir de maneira fácil, rápida e segura, uma aplicação comercial para gerenciar uma rede de Micros Terminais. Mas afinal, o que são os Micro Terminais ? São equipamentos de baixo custo, e muito robustos.. Eles não são um computador, e não permitem a instalação de software em sua memória. Eles atuam na verdade como "coletores de dados", e transmitem por TCP/IP, as informações coletadas a um Servidor, que as processa, e se necessário, envia comandos de volta ao Micro Terminal. Os Micro terminais, são ótimos para aplicações que implementam um atendimento no balcão, geralmente com auxílio de uma comanda. Os Micro Terminais, normalmente possuem duas portas Seriais, para ligação de equipamentos externos, como: Leitores de Código de Barras Impressoras Balanças Como funciona o componente ACBrMTer ? O componente ACBrMTer, é um Servidor TCP/IP. Ele abre uma porta TCP, normalmente 6550 ou outra, conforme a sua configuração. Após ativado, o ACBrMTer aguarda as conexões dos Micro Terminais, e dispara eventos para a sua aplicação, sempre que um novo Micro Terminal se conectar ou desconectar a ele. O ACBrMTer mantém de forma automática, uma lista de Micro Terminais conectados, e você pode se referenciar a cada um deles, pelo numero do IP da conexão. Todas as informações que o Micro Terminal transmitir, serão recepcionadas pelo componente ACBrMTer, que após tratá-las de acordo com o Protocolo do Micro Terminal, as transmitirá para a sua aplicação, através do evento OnRecebeDados. Como você provavelmente terá vários Micro Terminais na sua rede, o ACBrMTER envia no evento OnRecebeDados, o IP do Micro Terminal que as transmitiu... Um Micro Terminal irá transmitir dados, quando o usuário teclar algo no Equipamento, ou ainda quando o mesmo receber informações pela serial, como por exemplo de um Leitor de Código de Barras, ou Balança. Através do ACBrMTer, você pode enviar Comandos para o Micro Terminal, para realizar tarefas como por exemplo: Apagar ou Definir o texto no Display Movimentar o cursor Emitir Beep Comandar equipamentos, ligados a ele, como: Impressoras ou Balanças O ACBrMTer suporta os seguintes protocolos: mtrVT100: Protocolo simples, e usado em equipamentos antigos, esse protocolo não prevê respostas do Micro Terminal aos comandos a ele enviados. Esse protocolo é geralmente aceito por vários modelos de Micro Terminais, (por motivos de compatibilidade) mtrStxEtx: Mais completo que o VT100, e com controle de Recepção (ACK) de alguns comandos, esse protocolo é provavelmente o mais usado nos diversos Micro Terminais disponíveis no mercado. mtrPMTG: Protocolo bastante completo, e proprietário da Gertec mtrSB100: Protocolo nativo dos Micro Terminais da Bematech, e criado como uma melhoria do protocolo StxEtx Assim como os demais componentes do ACBr, o ACBrMTer irá abstrair a diferença entre os diversos protocolos suportados, de maneira que você não precise se preocupar com eles. É comum os Micro Terminais suportarem mais de um protocolo, o que pode ser definido em sua configuração Você poderá encontrar a documentação que usamos para o desenvolvimento do componente, em: http://svn.code.sf.net/p/acbr/code/tools/MicroTeminal/ Para que o ACBrMTer saiba se comunicar com as Balanças, e enviar comandos para leitura de Peso, e interpretar a resposta da Balança, é necessário conectar o componente ACBrMter em um componente ACBrBAL, e configurar no ACBrBAL, o Modelo ou protocolo, da Balança Como posso ver na prática ? Alguns fabricantes, como a Gertec e WillTech, fornecem emuladores, o que pode ser muito útil para conhecer o conceito desses equipamentos... Mas penso que é fundamental um equipamento real, se você deseja realmente construir aplicações para esse tipo de equipamento. Demo do ACBrMTer rodando em conjunto com o Emulador da Gertec Use a Força, leia os Fontes... Estude os fontes do Demo, que estão na pasta: \ACBr\Exemplos\ACBrTCP\ACBrMTer, essa é a melhor maneira de compreender o funcionamento do componente... Observe que fizemos uma "mini aplicação", que simula o Fluxo de uma Venda com comandas Para dúvidas e suporte ao ACBrMTer, por favor crie um Novo Tópico no sub-fórum do ACBrTCP https://www.projetoacbr.com.br/forum/forum/11-acbrtcp/1 ponto
-
Boa tarde a todos, Um detalhe muito importante, o componente ACBrNFe permite que cancelemos uma nota usando o método Cancelamento: ACBrNFe1.Cancelamento(AJustificativa: String; ALote: integer = 0): Boolean; ou montando uma rotina para alimentar o componente com as informações referente ao evento de cancelamento. Essa rotina que me refiro é genérica, portanto podemos utiliza-la para enviar para SEFAZ qualquer tipo de evento. Abaixo a rotina genérica para enviar o evento de Cancelamento Por Substituição: ACBrNFe1.EventoNFe.Evento.Clear; with ACBrNFe1.EventoNFe.Evento.Add do begin infEvento.chNFe := Chave; infEvento.CNPJ := CNPJ; infEvento.dhEvento := now; infEvento.tpEvento := teCancSubst; infEvento.detEvento.xJust := Justificativa; infEvento.detEvento.nProt := Protocolo; infEvento.detEvento.cOrgaoAutor := 35; infEvento.detEvento.verAplic := '1.0'; infEvento.detEvento.chNFeRef := ' chave de acesso da NFC-e substituta'; end; ACBrNFe1.EnviarEvento(StrToInt(idLote)); No programa exemplo do componente ACBrNFe você encontra essa mesma rotina, mas para enviar o evento de cancelamento. Observe o que esta em negrito.1 ponto
-
Eu faço da seguinte maneira, não sei se é o certo, mas, não tenho tido problemas. Gero o percentual do desconto, ( desconto / total bruto * ) 100, em cada item aplico este percentual e consequentemente encontro o valor do desconto do item, independente do valor do item, nunca será menor que o desconto.1 ponto
