Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 07-02-2019 em todas as áreas
-
Se está se referindo a imagem que o Daniel postou você pode instalar o pacote "anchordockingdsgn", se eu não me engano, ele já vem com lazarus, basta acessar, no lazarus, Pacotes -> Instalar/Desinstalar e procurar esse pacote na lista "Disponíveis para Instalação".4 pontos
-
Quer se concentrar e escrever aquele código fonte que parece um poema ? Então pegue seus fones de ouvido, ligue uma musica (instrumental), e se desligue do mundo externo... ... sou fã dessa banda (pouco conhecida), e que achei graças às sugestões do Spotify...3 pontos
-
O inicio dessa música o fonte ficaria dessa forma: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;?3 pontos
-
3 pontos
-
Isso mesmo...basta instalar esse Package e arrastar as janelas para compor a sua IDE... Aplicações comuns também podem usar esse recurso... http://wiki.freepascal.org/Anchor_Docking3 pontos
-
Atualizei os fontes, testado e funcionando ok.3 pontos
-
No Ubuntu após vários testes o que funcionou foi baixar e compilando diretamente do repositório o xmlsec1, no Fedora bastou instalar os pacotes diretamente dos repositórios e criar um link simbólico pois ao realizar o build do Lazarus ele não estava encontrando a lib xmlsec1, abaixo segue o passo a passo que utilizei baseado nas dicas do vídeo https://www.youtube.com/watch?v=wU8KRNMwUaw #UBUNTU 18.04 apt install libxml2-dev apt install libltdl-dev apt install libssl-dev wget http://www.aleksey.com/xmlsec/download/xmlsec1-1.2.27.tar.gz tar -zxvf xmlsec1-1.2.27.tar.gz cd xmlsec1-1.2.27 ./configure make make install #FEDORA 27/28 yum install libxml2-devel yum install libxslt-devel yum install libtool-ltdl-devel yum install openssl-devel yum install xmlsec1 ln -s /usr/lib64/libxmlsec1.so.1 /usr/lib64/libxmlsec1.so3 pontos
-
O XML retornado pela SEFAZ-MG para NFCe não está de acordo com as Notas Técnicas, houve inclusão de um prefixo na tag nfeResultMsg, ficando ns0:nfeResultMsg causando erro de leitura pelo ACBr. Em outro tópico sobre o componente vários usuários entraram em contato com a SEFAZ mas mesmo eles admitindo a falha no retorno e informando que houve a correção, o prefixo continua. Enviei agora para o repositório, rev. 16501, um ajuste para contornar esse problema. Se você não compila o ACBrMonitorPLUS, acredito que o @José M. S. Junior deve disponibilizar o ajuste na próxima atualização.3 pontos
-
A alteração realizada no arquivo Fontes/ACBrOpenSSL/libxmlsec.pas Alterada a linha: LIBXMLSEC_SO = 'libxmlsec.so'; para: LIBXMLSEC_SO = {$IFNDEF MSWINDOWS}'libxmlsec1'{$ELSE}'libxmlsec.so'{$ENDIF}; Esta alteração esta gerando o erro abaixo ao tentar gerar/assinar o xml da NFe: ERRO: "xmlSecNodeSignature" could not be loaded from the dynamic library libxmlsec1 Uma solução paliativa para contornar o problema foi criar um link simbólico com o nome libxmlsec1 sem a extensão .so ln -s /usr/lib64/libxmlsec1.so.1 /usr/lib64/libxmlsec1 https://github.com/GabrielF7/ACBrTrunk2/commit/c49df5f71c32474ae5caa9b5b32e4485eca5ba5a#diff-315e5578b57ec7910d57ff00a15b02c22 pontos
-
Boa tarde a todos, Alessandro, fiz um merge das suas alterações e algumas correções. Joffas, implementei o método Download. Novos métodos implementados no componente ACBreSocial function ConsultaIdentificadoresEventosEmpregador(const CnpjEstab: String; tpEvt: TTipoEvento; PerApur: TDateTime): boolean; function DownloadEventos(const CnpjEmpr, PorID, PorNrRecibo: String): boolean; O primeiro como podem ver é especifico para Eventos do Empregador, tem ainda do Trabalhador e Tabelas que precisam ser implementados. O de Download devemos informar o CNPJ e o ID ou CNPJ e o Numero do Recibo. Exemplo: ACBreSocial.DownloadEventos(xCNPJ, xID, ''); ou ACBreSocial.DownloadEventos(xCNPJ, '', xRecibo); É preciso melhorar, sendo assim preciso que façam testes. Essas alterações já estão disponíveis no repositório. Se faz necessário agora alterar o programa exemplo, ou seja criar novos botões exemplificando esses novos métodos. Desde já o meu muito obrigado a todos.2 pontos
-
Daniel, Realmente tinha uma configuração na impressora que estava fazendo cortar a parte inferior do Danfe. Estava cortando também os valores a direita, mas eu mudei a "LarguraBobina" e funcionou. Obrigado.2 pontos
-
Provavelmente você tem uma versão antiga, e não o pacote indicado no erro Fortes Report CE2 pontos
-
Basta LER o erro Ou Seja, você quer instalar os DANFEs em Fortes Report, ,mas não tem o Fortes Report instalado...2 pontos
-
Boa tarde, Andremomb. Tente fazer da seguinte forma: Baixe os fontes e jogue na raiz do c, execute o instalador como administrador, marque a opção de remover arquivos antigos e a opção de usar arquivo de configuração .cfg e tente novamente.2 pontos
-
2 pontos
-
Esses caracteres, no inicio do arquivo, são conhecidos como "BOM" https://en.wikipedia.org/wiki/Byte_order_mark Infelizmente o Delphi Rio, teima em converter as arquivos para UTF8... (Já corrigi no SVN)2 pontos
-
Você está seguindo o funcionamento de algum outro componente? Porque não me parece que o objetivo dessa propriedade NomeDocumento seja definir o nome e local a ser salvo do arquivo PDF. Ela me parece ter sido criada para alterar o nome que aparece no "SPOOL" do Windows.2 pontos
-
2 pontos
-
Bom dia Henrique, Muito obrigado pela colaboração, ainda hoje estarei enviando para o repositório.2 pontos
-
Bom dia não tem no monitor a NFS-e . para usar o ACBr somente com Delphi ou Lazarus na NFS-e2 pontos
-
Qualquer implementação de CallStack (ou Stack trace, ou call trace) deve servir. O EurekaLog e o MadException são os dois produtos comerciais muito utilizados (e recomendados). Mas eles possuem muito mais do que um simples CallStack. Possuem uma gama de ferramentas que ajudam a procurar um bug. Por outro lado, o CallStack em si, pode ser implementado com ferramentas gratuitas. Você pode implementar utilizando a unit JCLDebug.pas da JCL (tem vários artigos sobre isso facilmente encontrados no google), usando a SynLog do projeto mORMot, usando a DebugEngine (do mesmo criador do MadException), entre outros. Caso não estejam dispostos a pagar uma ferramenta, sugiro implementarem uma dessas formas. Com certeza isso vai ajudar vocês a resolverem problemas futuros também.2 pontos
-
Removi totalmente a pasta e estou baixando todo componente novamente , em seguida posto o resultado!2 pontos
-
2 pontos
-
Bom dia, Juliomar! Acabei resolvendo aqui. O procedimento que utilizei, foi o seguinte: Limpei todo o conteúdo do FORTES, ou seja, deletei os arquivos e realizei o UPLOAD novamente, desinstalei o FORTES do delphi também. E realizei a instalação pelo instalador do FORTES. Em seguida, realizei a limpeza do ACBr e fiz o upload da pasta novamente, desinstalei o que tinha do ACBr do delphi, utilizei o instalador do ACBr. Após, realizado esses procedimentos, o ACBr foi instalado com sucesso, sem problema algum em minha máquina. Muito obrigado!2 pontos
-
Atualizei os fontes, testado e funcionando ok.2 pontos
-
pra mim deu o erro tbem, exclui o ACBrNFeServicos.res e executei o compila_RES.bat2 pontos
-
Verifique a propriedade "EspacoFinal".... tente valores em torno de 40 ou mais... Mas realmente o ideal é usar Esc/Pos... Veja as vantagens, nesse post:2 pontos
-
Acredito que não tenha relação com o Filtro para PDF, pois olhando o código fonte do fortes é possível verificar que é feita a instanciação de um objeto canvas que gera um bitmap como saída, e o erro ocorre durante a manipulação do componente ao ser inserido diretamente em um form como pode ser visto na imagem que postei2 pontos
-
Pessoal, eu resolvi o meu problema entrando na pasta \\AcBr\DLLs\XMLSec\MinGW\32 e copiando todas as Dll's para a raiz da minha aplicação.2 pontos
-
Olá, Na pasta ...\Projetos\ACBrMonitorPLUS\Lazarus\Exemplos tem uns muito bons.2 pontos
-
Boa tarde Dércio, Favor atualizar os fontes e faça novos testes.2 pontos
-
Realizei novos testes e verifiquei que o problema ocorre devido a variação na quantidade de caracteres conforme pode ser visto na imagem em anexo. O fato de funcionar usando o bcEAN128C com Ratio 2 se deve realmente ao fato da inclusão do dígito verificador fazendo com que o código resultante fique em 46 caracteres, aparentemente o problema esta no fortesreport-ce2 pontos
-
Boa tarde Suas sugestões foram disponibilizadas nos fontes do Projeto ACBr. Obrigado pela contribuição!2 pontos
-
Olá pessoal, Introduzi no componente ACBrPosPrinter, um novo mecanismo de acesso a Impressora Agora poderemos acessar algumas impressoras, usando a Sintaxe: ACBrPosPrinter1.Porta := 'DLL:MARCA'; Onde MARCA, será o nome da Marca do Fabricante da Impressora... Até o momento, temos suporte para as marcas "ELGIN", e "EPSON" A ideia por traz dessa nova sintaxe de Porta, é permitir usar a DLL/SO do Fabricante, para Imprimir diretamente na Impressora... Ok.. o ACBrPosPrinter, já conseguia acessar impressoras Não Fiscais, pela Porta USB, usando a Sintaxe "RAW:" ACBrPosPrinter1.Porta := 'RAW:Nome da Impressora no Windows'; Mas então porque desenvolvemos essa nova forma de acesso ? A nova sintaxe "DLL:", tem algumas vantagens, em relação a sintaxe "RAW:" Não depende da instalação do Driver de Spool da Impressora.. (note porém, que em alguns casos, o Driver de Spool não pode estar instalado, pois ele bloqueia o acesso a USB) Podemos Ler Informações da Impressora (o que não é possível no modo RAW) Entretanto, como foi dito antes, dependemos de DLL exclusiva do fabricante, para o acesso a Impressora pela USB... Quais são essas DLLs ? Para onde eu devo copiá-las ? Vejamos como foi descrito no ACBrSerial-change-Log.txt Creio que isso responde as duas perguntas, correto ? Você pode encontrar as DLLs no nosso SVN, na pasta: \ACBr\DLLs\PosPrinter, ou ainda pela Web: http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/PosPrinter/ Você pode ainda baixar uma versão do Demo PosPrinterTeste, atualizada, compilado em Lazarus/FPC no link abaixo: Como funciona essa nova técnica ? Quem faz todo acesso as Portas suportadas pelo ACBr, é um subcomponente chamado ACBrDevice, e há um bom tempo, esse componente já possui uma possibilidade de Integração por Hooks O que é Hook ? https://pt.wikipedia.org/wiki/Hooking A ideia por trás dos Hooks, é instalar ganchos, em eventos, que nos permitam interceptar algumas ações e chamadas... Veja esse trecho de código FDevice.HookAtivar := PosPrinterHookAtivar; FDevice.HookDesativar := PosPrinterHookDesativar; FDevice.HookEnviaString := PosPrinterHookEnviaString; FDevice.HookLeString := PosPrinterHookLeString; Aqui instruímos o subcomponente ACBrDevice, a chamar nossos eventos, quando ele precisar "Ativar", "Desativar" uma porta e também quando ele for "EnviarString" e "LeString", de uma determinada porta... Então no interior do componente ACBrPosPrinter, implementamos os eventos indicados acima (PosPrinterHookAtivar, PosPrinterHookDesativar, etc) ... Com isso, o ACBrDevice executará um código nosso, ao invés do que ele normalmente executaria... Veja que dentro dos eventos de ativação e desativação usamos uma Classe de Hook (leia mais abaixo) procedure TACBrPosPrinter.PosPrinterHookAtivar(const APort: String; Params: String); begin if Assigned(FHook) then FHook.Open(APort); end; procedure TACBrPosPrinter.PosPrinterHookDesativar(const APort: String); begin if Assigned(FHook) then FHook.Close; end; FHook por sua vez, é uma variável interna ao ACBrPosPrinter, que contem uma Classe de Hook (TACBrPosPrinterHook), e implementa os comandos necessários, para transmitir essas ações, a DLL do fabricante... Veja o exemplo abaixo, como fica a implementação dos Hooks de Ativar e Desativar, da ELGIN... observe que chamamos métodos Externos, da DLL da Elgin, como: "PrtPortOpenW" e "PrtPortClose" procedure TElginUSBPrinter.Open(const APort: String); var errorNo: Integer; begin if Connected then Exit; inherited Open(APort); try errorNo := xPrtPortOpenW(FPrinter, WideString(fpPort)); // <------- A Q U I ------- if (errorNo <> E_SUCCESS) then raise Exception.CreateFmt(CERROR_OPEN, [fpPort, fpPrinterName]); except fpConnected := False; fpPort := ''; raise; end; end; procedure TElginUSBPrinter.Close; var errorNo: Integer; begin if not Connected then Exit; errorNo := xPrtPortClose(FPrinter); // <------- A Q U I ------- if (errorNo <> E_SUCCESS) then raise Exception.CreateFmt(CERROR_CLOSE, [fpPort, fpPrinterName]); inherited Close; end; Com isso, conseguimos usar a DLL do Fabricante, para estabelecer um túnel entre o ACBrPosPrinter e o equipamento... Como posso implementar um Hook para um novo modelo ? Os Primeiros passos, são verificar: Se o Fabricante disponibiliza uma DLL para acesso direto ao equipamento (sem depender do Spooler) Se há nessa DLL, um método que nos permita Escrever e Ler Dados da Porta USB Ou seja, não precisamos de métodos de alto nível, que façam a formatação de caracteres, ou manipulem a impressora... Pois continua sendo o ACBrPosPrinter, quem montará toda a Sintaxe de comandos a serem enviados para a Impressora, usando a linguagem Esc/Pos... e igualmente, será o ACBrPosPrinter que fará a leitura de respostas, quando for necessário... Na DLL da Elgin, temos um ótimo exemplo de método para isso... function PrtDirectIO(printer:Pointer; // Ponteiro com a Impressora instanciada por PrtPrinterCreatorW writeData:PByte; // Buffer com dados a serem enviados writeNum:integer; // Número de Bytes em "writeData" (tamanho do Buffer) readData:PByte; // Ponteiro com o Retorno a ser Lido (Buffer de saída) readNum:integer; // Numero de bytes disponíveis para escrita em "readData" (tamanho disponível no Buffer de Saída) preadedNum:PInteger // Número de bytes realmente escritos em "readData" ): Integer; cdecl; // Status de retorno E_SUCCESS = 0; Tendo isso em mãos, podemos criar uma cópia de uma das Units já existentes, como por exemplo a Unit ACBrEscPosHookElginDLL.pas, e implementar o suporte usando a nova DLL, e efetuar os ajustes referente a nova Marca1 ponto
-
Boa tarde Se Salto já está na lista de cidades acredito é porque não é necessária alteração nenhuma..vc já estudou o demo do componente? Att.1 ponto
-
Boa tarde. Segue também link no svn para os exemplos utilizando-se as classes de baixo nível para o SAT svn://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Sat Lembrando que por ser usuário SAC vc tem acesso as classes de alto nível e seus exemplos de uso, disponíveis em https://www.projetoacbr.com.br/forum/files/category/55-acbrlibsat/ Obs. Realmente faltou adicionar ao manual os comandos do SAT, atualizaremos assim que possível. Att.1 ponto
-
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.1 ponto
-
ja descobri o que foi... o cliente tinha cadastro o cliente no sistema so sicoonet com um CPF e no meu sistema colocou com outro .. ai da esse erro1 ponto
-
Bom dia; Pelo PosPrinter, nao consegui resolver. Para solucionar o problema, Instalei o driver Windows da impressora, e mandei imprimir pelo Fortes DANFECE Fortes.1 ponto
-
1 ponto
-
Tópico fechado por falta de retorno do usuário1 ponto
-
1 ponto
-
1 ponto
-
1 ponto
-
1 ponto
-
Bom dia, Se você abrir através de um navegador os arquivos *-R5001.xml vai notar o seguinte: O que se refere ao evento 1000 ele foi processado com sucesso e temos o numero do recibo de arquivamento na base de dados. Já o que se refere ao evento 2099 ele esta em processamento, neste caso o que temos é o numero do protocolo de entrega.1 ponto
-
vc pode configurar as margens nas propriedades do componente exemplo FDataModule.ACBrNFeDANFCEFR.MargemSuperior := 0; FDataModule.ACBrNFeDANFCEFR.MargemInferior := 0; FDataModule.ACBrNFeDANFCEFR.MargemEsquerda := 0; FDataModule.ACBrNFeDANFCEFR.MargemDireita :=10;1 ponto
-
O tópico estava em uma área Privada a moderadores... movi para a Assuntos Diversos, e deve ser acessível agora... Consulte o SEFAZ... não faz o menor sentido tentar gerar um arquivo gigantesco como este... afinal você dificilmente conseguirá transmiti-lo por um WebService... Há tópicos aqui no fórum, onde usuários comentaram que é uma orientação do SEFAZ, gerar o XML apenas com os produtos que realmente possuem estoque1 ponto
-
1 ponto
-
Valeu Daniel, com a sua dica eu criei uma pergunta no Monitor e usei a propriedade que você falou, já está resolvido, obrigado, valeu.1 ponto