-
Total de ítens
27.483 -
Registro em
-
Última visita
-
Days Won
766
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Daniel Simoes postou
-
Use as tabelas do IBPT com o componente ACBrIBPTax
-
Como fazer uma Pré-Visualização antes de Autorizar a NFe
Daniel Simoes replied to João Paulo Pires's tópico in ACBrLIB
O Build atual é bem superior -
Se você usa um Gerador de Relatórios, como o Fast Report... basta criar um novo layout
-
Não compreendi sua pergunta.. Sugiro estudar os fontes do Demo do ACBrMTER... lá a simulação de uma aplicação de venda
-
Por favor tente esse comando https://acbr.sourceforge.io/ACBrMonitor/ACBrSetWebService.html
-
Parece ser algo no seu lado... no momento de converter de String para Inteiro
-
https://www.projetoacbr.com.br/acbr-mapas-fiscais/
-
Ainda não temos um componente... mas temos planos de Desenvolver... No ACBrMonitorPLUS tem uma aba que implementa um Servidor TCP para o BuscaPreco
-
https://www.projetoacbr.com.br/acbr-monitor-plus/
- 1 reply
-
- 1
-
-
ACBrLibNFe falha de segmentação (imagem do núcleo gravada)
Daniel Simoes replied to Jamil Araujo's tópico in ACBrLIB
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. -
ACBrLibNFe falha de segmentação (imagem do núcleo gravada)
Daniel Simoes replied to Jamil Araujo's tópico in ACBrLIB
Muito legal saber que seu certo... parabéns pela persistência, @jamil -
Tente: Uses DateUtils ..... HorasEntre := HoursBetween(Anow, Athen);
- 1 reply
-
- 1
-
-
Por favor faça testes usando o Demo do ACBr... Se conseguir reproduzir, informe o passo a passo
-
Como utilizar o ACBr NFe com certificado A3
Daniel Simoes replied to CarlosFonteles's tópico in ACBrLIB
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. -
Como utilizar o ACBr NFe com certificado A3
Daniel Simoes replied to CarlosFonteles's tópico in ACBrLIB
Por favor configure dessa maneira: Configuracoes.Geral.SSLLib := libWinCrypt; Configuracoes.Geral.SSLCryptLib := cryWinCrypt; Configuracoes.Geral.SSLHttpLib := httpWinHttp; Configuracoes.Geral.SSLXmlSignLib := xsLibXml2; SSL.SSLType := LT_TLSv1_2; -
-
ACBrPosPrinter com suporte a USB por Hook
Daniel Simoes replied to Daniel Simoes's tópico in Notícias do ACBr
Veja também esse tópico:- 1 reply
-
- 1
-
-
- acbrposprinter
- usb
-
(e 3 mais)
Tags:
-
ACBrDevice com suporte Nativo a USB no Windows
um tópico no fórum postou Daniel Simoes Notícias do ACBr
O ACBr suporta impressoras USB ? Durante muito tempo, a resposta a essa pergunta foi: NÃO, você precisa usar a Porta COM, Spool do Windows (RAW), Compartilhamento de Rede ou algum outro método... Porém agora isso mudou... Agora componentes que usam o ACBrDevice, como por exemplo o ACBrPosPrinter (para Impressoras Não Fiscais) e o ACBrETQ (para Impressoras de Etiquetas), possuem suporte a portas USB de maneira nativo do Windows... Ou seja, sem a necessidade de DLLs externas... Isso significa que caso o seu equipamento esteja conectado ao PC, por uma Porta USB... Você poderá conectar os componentes do ACBr, simplesmente definindo na Propriedade Porta algo como "USB" Exemplos de uso: ACBrPosPrinter1.Porta := 'USB' - Tenta descobrir qual é a Primeira Impressora de Bobinas plugada na USB e faz uso dela, se encontrar.. ACBrPosPrinter1.Porta := 'USB:Elgin' - Tenta conexão em alguma Impressora USB, listada como sendo do Fabricante 'Elgin' ACBrPosPrinter1.Porta := 'USB:Sweda, SI-300S' - Tenta conexão na Impressora USB, do Fabricante "Sweda" e do Modelo "SI-300S". ACBrETQ1.Porta := 'USB' - Tenta descobrir qual é a Primeira Impressora de Etiquetas plugada na USB e faz uso dela, se encontrar.. ACBrETQ1.Porta := 'USB:Zebra, GC420t' - Tenta conexão com a Impressora USB do Fabricante "Zebra", e modelo "GC420t" Observe que essa nova implementação é totalmente diferente do método de Hook, onde usávamos a DLL do Fabricante, como túnel USB... Nesse novo cenário a comunicação USB é feita diretamente usando a API do Windows, ou seja, sem necessidade de DLLs externas. Para compreender um pouco mais, sobre esse método veja esse artigo O método de Hook ainda está disponível, usando o prefixo de porta, 'DLL:' Como os Equipamentos são identificados ? Todo Equipamento USB, possui um código de identificação do Fabricante, chamado de Vendor ID (VID), e também do Produto chamado de Product ID (PID). Essa numeração é controlada pela USB.ORG, e você pode encontras uma lista de Todos os "Vendors ID", nesse link A classe TACBrUSBIDDataBase, mantêm um Banco de Dados interno, chamado ACBrUSBID.ini, com o mapeamento dos principais Equipamentos do Mercado Brasileiro.. Esse Banco de Dados é um simples Arquivo do tipo INI, que é compilado como resource e adicionado ao componente... Clique aqui para ver o layout do Banco de Dados no Formato INI, observe os comentários no inicio do arquivo, com algumas instruções de como inserir novos equipamentos nele. Se você distribuir o arquivo ACBrUSBID.ini, na mesma pasta do Executável da sua aplicação, a classe TACBrUSBIDDataBase fará uso desse arquivo, ao invéz de usar o resource interno... Isso pode ser muito útil para atualizar a lista de Dispositivos conhecidos, sem necessitar compilar uma nova versão do programa, apenas atualizando o ACBrUSBID.ini Como posso listar os equipamentos identificados pelo ACBr ? Use a Força, leia os fontes... Vamos ver trechos de código, do Demo PosPrinterTeste {$IfDef MSWINDOWS} // Os métodos abaixo, somente estão disponíveis para compilação em Windows // Carrega a lista de Impressoras detectadas em: ACBrPosPrinter1.Device.WinUSB.DeviceList ACBrPosPrinter1.Device.WinUSB.FindUSBPrinters(); // Varre a lista de Impressoras USB detectadas, e adiciona as mesmas, nas opções de Porta for K := 0 to ACBrPosPrinter1.Device.WinUSB.DeviceList.Count-1 do cbxPorta.Items.Add('USB:'+ACBrPosPrinter1.Device.WinUSB.DeviceList.Items[K].DeviceName); {$EndIf} Como o ACBr nomeia os dispositivos ? O "DeviceName" será calculado, de acordo com as informações disponíveis no banco de Dados... Primeiro o ACBr usa a API do Windows para captura informações do VID (Vendor ID ou Fabricante) e o PID (Product ID ou Modelo), dos Equipamentos listados... Se o ACBr falhar nessa tarefa, o equipamento será ignorado (não será listado) Se for capturado com sucesso a descrição em FriendlyName, então ela será usada.. Caso contrário, o ACBr tentará compor o nome, baseado no VID e PID Se o VID do Fabricante for encontrado na sessão [Vendors] de ACBrUSBID.ini, então o VID será substituído pela Descrição do Fabricante... Observe que na sessão [Vendors], temos vários fabricantes que não são conhecidos no mercado Brasileiro, mas são de equipamentos OEM, de Empresas nacionais... Nós procuramos manter o nome Original do Fabricante, de acordo com a tabelas de VID da OSB.ORG Se o VID não tiver equivalência na relação de [Vendors] de ACBrUSBID.ini, então ele será listado com o próprio número VID, que são 4 algarismos em Hexadecimal... Exemplo: "0b1b" Procuramos pelo PID do Equipamento, na sessão específica do Fabricante. Se não houver uma chave com o PID, então o ACBr usará o próprio número PID, para Nomear o Modelo. O PID também é composto do 4 algarismos em Hexadecimal... Exemplo: "0001" Se encontrar uma entrada com o PID, dentro da sessão do Fabricante, então o ACBr usará a Descrição do Modelo, e poderá desprezar a descrição do Fabricante, se a Descrição do modelo possuir uma vírgula, Exemplo: 7008=Elgin, I9;1;1... Nesse caso será desprezada a descrição do Fabricante "20d1-Dascom" e será usada apenas a descrição do Modelo, "Elgin, I9". Detecção automática de Porta e Protocolo Como agora temos um Banco de Dados, que informa além da Descrição do equipamento, qual é o Tipo do mesmo e qual o protocolo que ele usa, então os componentes ACBrPosPrinter e ACBrETQ, podem fazer uso dessas informações... Ou seja, se o equipamento for detectado com sucesso, no momento da Ativação da Porta (durante a chamada ao método "Ativar"), será usado o Protocolo Definido no Banco de Dados. Se for detectado que o equipamento USB é na verdade uma porta COM virtual, então o ACBr irá preferir fazer uso da Porta COM virtual, chaveando para mesma, de forma transparente... Pois dessa forma ele tem um melhor suporte a leitura de informações do equipamento. Se for detectado que a porta USB possui um equipamento incompatível com o componente em questão, isso também será alertado... Exemplo, você tentar conectar em uma porta 'USB:Zebra, GC420t' no componente TACBrPosPrinter, então um erro será emitido, pois esse equipamento não é uma impressora de Bobinas Como a mágica funciona ? Reparem que foi adicionado ao repositório a Unit ACBrWinUSBDevice.pas, essa Unit implementa chamadas a SetupAPI do Windows, para detectar os Dispositivos USB que estão listados em uma determinada Classe de Equipamentos (Class GUID)... O estudo desse artigo, foi fundamental, para a criação dessa Unit. Uma vez capturada o nome da Interface do Equipamento USB (em TACBrUSBWinDevice.DeviceInterface), podemos acessá-lo usando funções de manipulação Arquivos da API do Windows, como: CreateFile, WriteFile, ReadFile. Nem todos os dispositivos USB implementam suporte aos métodos ReadFile ou WriteFile... ou seja, pode não funcionar em alguns dispositivos.. Se você souber qual é o nome da Interface USB do equipamento, poderá informar ela diretamente na propriedade "Porta" dos componentes... Exemplo: ACBrPosPrinter1.Porta := '\\?\usb#vid_1c8a&pid_3002#0000000000022#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}'; Para dúvidas, suporte ou correções, por favor crie um novo tópico, clicando aqui Para testar, baixe uma nova versão do PosPrinterTeste.exe -
Não temos relatos de problema semelhante no Fórum... Verifique se seus fontes do Fortes Report CE estão corretamente atualizados... Em EscPos ele não passa pelo Spool do Windows... a ideia é sempre imprimir uma linha, e passar para a próxima... então as métricas de papel realmente não se aplicam...
-
O ACBrMTER não usa nenhuma DLL... ele mesmo implementa a comunicação com os equipamentos pelo protocolo do mesmo... O Micro Terminal da Gertec usa o protocolo PMTG o