Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 08-11-2017 em todas as áreas
-
Olá pessoal, Compartilho com vocês, os Planos de Expansão do Projeto ACBr. Em anexo, está o PDF da apresentação Apresentação - ACBr - Planos de Expansão.pdf2 pontos
-
Segue uma prévia da Unit. Antes de mais nada: USE POR SUA CONTA E RISCO. NÃO ME RESPONSABILIZO POR QUALQUER PROBLEMA QUE POSSA DECORRER DESSE CÓDIGO DIRETA OU INDIRETAMENTE! (sim é gritado mesmo). Não está pronta, precisa implementar/melhorar/testar muita coisa ainda, se você não é um desenvolvedor do ACBR é melhor esperar um versão final. Está funcionando: Assinatura de NFe; Assinatura de Evento da NFe; Assinatura de Inutilização de Numeração da NFe; Validações de DFe; Precisa ser feito: Implementar VerificarAssinatura; Testar com certificado CNG(no momento não tenho nenhum em mãos, mas vou ter que resolver isso pois pretendo colocar em produção em breve); Melhorar a forma de seleção dos elementos a serem assinados; Compatibilizar com outros documentos(no momento tenho apenas NFe em produção no ACBR); Testar/Compatibilizar com Lazarus; Verificar Memory Leaks; Alterações nas demais Units para suportar a nova classe; Estou com pouco tempo disponível então toda ajuda é bem vinda. Qualquer dúvida estou a disposição. ACBrDFeXsMsCrypto.pas2 pontos
-
Enviei ao SVN. Mas considero o componente em beta. Confesso que não entendi todas as propriedades (Exemplo: TrocaDiaTipo), mas aqui vão algumas considerações: Notei que o arquivo .json não é válido. Você mesmo pode testar em sites como: https://jsonformatter.org/ ou https://jsonformatter.curiousconcept.com/ Removendo uma vírgula na linha 84 e alterando a linha 2 para incluir uma string (exemplo "definicao": { ), corrige o arquivo. Na busca por feriados de 2017, o programa de exemplo está exibindo "a páscoa" com data de "30/12/1899"... Outra coisa, as classes estão todas dentro do arquivo ACBrFeriado.pas. Seria melhor estarem em arquivos separados. Principalmente as classes abstratas ou básicas (TACBrFeriadoWSClass) e suas implementações (TACBrWSCalendario, TACBrWSJSON). Nota: Ao pesquisar sobre o assunto, acabei encontrando o seguinte projeto: https://github.com/dadosbr/feriados. Pode ser interessante unir forças já que eles mesmos disponibilizaram uma mini-api.2 pontos
-
Olá amigos, depois de mais um cliente ter perdido o certificado resolvi que ia tentar descobrir oque estava causando isso, e depois de muita peleja(são 4:00 da manhã ), acho que consegui chegar ao causador do problema, pelo menos tive sucesso em excluir um certificado por diversas vezes assinando um XML. E como muito se falava, não é diretamente o ACBR que está excluindo o certificado, pelo que constatei é a MSXML que está "reiniciando" o certificado e somando isso a mais algum problema está causando a exclusão. Se você assinar um XML e deixar o administrador do token aberto, verá que no momento da assinatura, no trecho "xmldsig.sign(dsigKey, CERTIFICATES);" o token muda de: Operacional >> Ausente >> Presente >> Operacional, como se o cartão fosse removido e inserido novamente. Pensei aí tem coisa! Tentei remover o cartão durante a assinatura mas não consegui simular a exclusão do certificado, imaginei que não estava sendo rápido o suficiente. Então coloquei um loop no trecho do ACBR que pega a chave privada do certificado, antes de executar a assinatura, percebi que até aí o PIN do certificado não era solicitado, somente mais a frente quando ocorre a assinatura com "xmldsig.sign(dsigKey, CERTIFICATES);". Porém quando removi o certificado da leitora e inseri novamente dentro do loop(o mesmo que a MSXML faz durante a assinatura) foi me solicitado o PIN e logo depois veio a mensagem: "O conjunto de chaves não está definido", olhando no administrador do token que estava aberto pude ver o certificado sendo excluído: O PIN que ele me solicitou foi para excluir o certificado! O que imagino que esteja acontecendo é que se você chamar o método Assinar repetidamente, antes de dar tempo do cartão ficar operacional novamente, o certificado pode ser excluído. Isso explicaria o porque da exclusão ser esporádica e também não acontecer com todos os sistemas, pois dependeria da lógica usada por cada um para assinar, como assinaturas em sequência ou mesmo mais de uma thread acessando o certificado. Fiz um vídeo mostrando o momento da exclusão, note que não consegui excluir na primeira tentativa, porque demorei muito pra inserir o cartão, estava com uma mão ocupada filmando, ia editar isso mas tô com muito sono. MODERAÇÃO: vídeo removido a pedido do usuário Vou dormir um pouco e amanha ver se me aprofundo no problema.1 ponto
-
Pessoal, podem dizer adeus ao problema com o certificado A1, esqueçam a libOpenSS instalem o certificado A1 com este programa aqui e usem o libWinCrypt a unica maneira que resolveu meu problema para muitos certificados A1 que geravam este erro. http://www.validcertificadora.com.br/upload/downloads/validcertificadora.exe boa sorte1 ponto
-
Dia 07/11/2017 foi publicada a nova versão da Nota técnica 2016.002. A NT2016.002 - v 1.41 altera as datas de implantação da versão 4.0 da NF-e/NFCe alterando também o prazo para desativação da versão 3.10. As novas datas podem ser vistas na imagem abaixo: Fonte: http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=af0MhVeqltw=1 ponto
-
1 ponto
-
Boa noite a todos, Na rotina que configura o componente temos: ACBrCTe.Configuracoes.WebServices.UF := sUFdoEmitente; 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; Na rotina que alimente o componente com os dados pertinentes ao CTe: case rgTipoEmissao.ItemIndex of 0: Ide.tpEmis := teNormal; 1: if ACBrCTe.Configuracoes.WebServices.UFCodigo in [14, 16, 26, 35, 50, 51] then Ide.tpEmis := teSVCRS else Ide.tpEmis := teSVCSP; end; Ide.cUF := iCodigoUFdoEmitente; Resumindo: ide.tpEmis tem que ser sempre igual a ACBrCTe.Configuracoes.Geral.FormaEmissao ide.cUF tem que ser sempre igual a ACBrCTe.Configuracoes.WebServices.UFCodigo que tem que ser a mesma UF do Emitente do CT-e. Detalhe importante, a SEFAZ-Virtual de Contingência (ambiente de produção) só é liberado a pedido da SEFAZ-Autorizadora, caso contrario ela ficará bloqueada. Já a SVC (ambiente de homologação) nunca é bloqueada, pois ela é necessária para que os desenvolvedores possam realizar os seus testes.1 ponto
-
@Delcio eu já fiz algumas alterações para usar a TDFeWinCrypt e também uma forma melhor de localizar os elementos. ACBrDFeXsMsCrypto.pas1 ponto
-
Incompatibilidade de DLLs provavelmente. Se você está compilando o ACBr com a diretiva {DEFINE USE_MINGW} ativada, deve usar as DLLs da pasta ACBr\DLLs\XMLSec\MinGW\32. Senão, usar as DLLS da pasta ACBr\DLLs\XMLSec e ACBr\DLLs\OpenSSL\0.9.8.141 ponto
-
1 ponto
-
Obrigado Sérgio! era isso que eu estava tentando entender!!! Li que algumas publicações relacionadas, pra entender um pouquinho melhor essas diferenças entre utilizar o CF-e SAT, e NFC-E. É muito confuso para nós desenvolvedores menos experientes entenderemos, mas ficou muito claro da forma como disse, até sugiro que abrissem um tópico ou acrescentassem isso no manual do acbr. Percebi também que emitir CF-e SAT é melhor que NFC-e rsrrs.1 ponto
-
Cupom Vinculado é somente para TEF! demais documentos Relatório Gerencial.1 ponto
-
Corrigido... realmente era o caso da eterna briga de UTF8 x Ansi1 ponto
-
O ACBr é OpenSource... basta abrir os fontes e conferir... TACBrBALModelo = (balNenhum, balFilizola, balToledo, balToledo2090, balToledo2180, balUrano, balLucasTec, balMagna, balDigitron, balMagellan, balUranoPOP, balLider, balRinnert, balMuller, balSaturno, balAFTS, balGenerica, balLibratek, balMicheletti, balAlfa ) ;1 ponto
-
A ideia é interessante... e pode ser uma boa alternativa, para quem não se incomoda com o "peso" do .NET e suas infinitas atualizações... Mas a classe deveria complementar todos os métodos necessários para a manipulação de XML, como: Assinar (ok), Validar Assinatura, Validar Schema Já solicitei a ajuda do @Rafael Dias, que é nosso expert em C#, para ver se conseguimos completar....1 ponto
-
Bom dia a todos. Consegui uma solução para a consulta do cnpj. Segue abaixo código. Seria interessante, se possível e viável, integrá-la nos padrões do ACBR e até distribuí-la nesse formato. na unit ACBrConsultaCNPJ foram feitas as seguintes modificações : function TACBrConsultaCNPJ.Consulta(const ACNPJ, ACaptcha: String; ARemoverEspacosDuplos: Boolean): Boolean; var Post: TStringStream; Erro: String; Resposta : TStringList; StrAux: String; sMun:String; CountCid:Integer; cCaptcha : String; begin Result := False; Erro := ValidarCNPJ( ACNPJ ) ; if Erro <> '' then raise EACBrConsultaCNPJException.Create(Erro); Clear; Post:= TStringStream.Create(''); try try HTTPGet('https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/cnpjreva_solicitacao2.asp'); except on e : exception do raise EACBrConsultaCNPJException.Create('Erro ao conectar no site da receita.'+#13#10+E.Message); end; cCaptcha := QuebraCaptcha; if ( cCaptcha ) = '' then raise EACBrConsultaCNPJException.Create('Erro na quebra do captcha'); Post.WriteString('cnpj='+OnlyNumber(ACNPJ)+'&'); Post.WriteString('g-recaptcha-response='+ cCaptcha +'&'); Post.WriteString('origem=comprovante&'); Post.WriteString('search_type=cnpj&'); Post.WriteString('submit1=Consultar'); Post.Position:= 0; HttpSend.Clear; HttpSend.Document.Position:= 0; HttpSend.Document.CopyFrom(Post, Post.Size); HTTPSend.MimeType := 'application/x-www-form-urlencoded'; HTTPPost('https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/valida_recaptcha.asp'); Erro := VerificarErros(RespHTTP.Text); -------------------- function TACBrConsultaCNPJ.QuebraCaptcha:String; var sl :TStrings; IdHTTP : TIdHTTP; cID: string; nConta: Integer; begin sl := TStringList.Create; IdHTTP := TIdHTTP.Create; try sl.Text := 'body='+( sl.Text ); sl.Insert( 0, 'method=userrecaptcha'); sl.Insert( 0, 'key='+FKey2Captcha); // nova propriedade criada no componente ACBrConsultaCNPJ do tipo string sl.Insert( 0, 'googlekey=6LcT2zQUAAAAABRp8qIQR2R0Y2LWYTafR0A8WFbr'); sl.Insert( 0, 'pageurl=https://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/cnpjreva_solicitacao2.asp'); try IdHTTP.Request.CustomHeaders.Clear; IdHTTP.Request.Clear; cID := IdHTTP.Post( 'http://2captcha.com/in.php', sl ); if Copy( cID,1,2 ) <> 'OK' then Abort; except Abort; end; cID := copy( cID, 4, 100 ); nConta := 0; try IdHTTP.Request.CustomHeaders.Clear; IdHTTP.Request.Clear; Result := ''; Sleep(10000); // aguardar 10 segundos repeat Sleep(5000); // aguardar 5 segundo para cada tentativa Result := IdHTTP.Get( 'http://2captcha.com/res.php?key='+FKey2Captcha+'&action=get&id='+cID ); Inc( nConta ); if (nConta >= 15) then Abort; until (Copy( Result, 1, 2 ) = 'OK'); Result := Copy( Result, 4, 1000 ); except Result := ''; end; finally sl.Free; IdHTTP.Free; end; end; ------------------------------- Também foi necessário incluir o IndyProtocols.dcp no projeto ACBr_TCP.bpl. O Key2Captcha refere-se a chave de acesso fornecida pelo site www.2captcha.com que é o responsável pela quebra do recaptcha. Sucesso a todos !! Fiquem com Deus.1 ponto
-
Obrigado @Juliomar Marchetti Sobre anexar o arquivo vou tentar me lembrar disso da próxima vez.1 ponto
-
Realmente o Tanca e o Elgin Linker 1 tem esse detalhe, eu mesmo já deparei com isso. Se você reparar no log gerado pelo equipamento, no momento da duplicidade é acusado o "SAT EM PROCESSAMENTO". A solução foi atualizar o driver e a dll do equipamento e o problema foi contornado.1 ponto
-
Que bom. Obrigado, realmente foram falhas minhas. Não consegui reproduzir o erro. Para mim, em 2017, este feriado está aparecendo com a data de 16/04/2017. E funcionando também para os anos seguintes. Existem casos que os feriados são, pela legislação, transferidos de dia. Neste caso, pode-se configurar especificando que tipo de troca de dia ocorre. Ex.: Como exemplo que o colega citou acima. Conforme previsão legal, o feriado de 11/08 em SC sempre é transferido para o domingo seguinte. Então, configuramos assim: "trocaDiaTipo": 1, // O tipo de troca será um de-para. "trocaDiaDe": "2,3,4,5,6,7", // Caso o feriado caia em algum desses dias da semana, ele será trocado (entre segunda e sábado). "trocaDiaPara": 1, // O dia da semana para o qual ele será trocado (domingo). "trocaDiaParaSemana": 1 // Indica que a troca ocorrerá para um dia na semana seguinte. Pelo que pesquisei, a troca do dia do feriado prevista legalmente ocorre também no Acre e no Maranhão. Para implementar isso, caso alguém tenha outras maneiras de fazê-lo, pode ficar a vontade para dar sugestões. Eu cheguei a encontrar esse projeto, e me pareceu descontinuado. Mas de repente seria interessante. Posso alterar de acordo com a sugestão.1 ponto
-
Ok. Concordo. Fiz testes com Capicom, Indy, DCPCRYPT e LockBox, mas não consegui assinar. Enquanto não houver alternativa, utilizo como método paliativo em fontes paralelos. Obrigado1 ponto
-
1 ponto
-
Daniel show de bola, então, fiz todo processo blz... estou agora nos testes finais, percebi que após enviar a nota, algumas informações estão ok na minha tabela, mas, o protocolo esta ficando vazio. estou atribuindo a linha : Venda.Protocolo := ACBrNFe.WebServices.Retorno.Protocolo; esta exatamente como no DEMO, geraXML; ACBrNFe.NotasFiscais.Assinar; ACBrNFe.NotasFiscais.Validar; ACBrNFe.Enviar(0, False, True); salvo os dados que preciso na minha tabela. achei. vi que ele pega de ACBrNFe.NotasFiscais.Items[0].NFe.procNFe.nProt Vlw.1 ponto
-
estão no svn. mas por favor tente separar em tópicos distintos mesmo sendo quase um único situação mas separe.1 ponto
-
1 ponto
-
Muito obrigado Sergio Assunção! era o erro de velocidade mesmo. muito obrigado!!!1 ponto
-
Veja qual é a velocidade da balança nas configurações internas da balança, ai você ajusta essa velocidade no BalancaTeste.1 ponto
-
Além da alteração acima, mais uma que implementa o registro C465. São alterações no ACBrImporta e no ACBrSped. ACBrEFDBloco_C.pas ACBrEFDBloco_C_Class.pas ACBrEFDBloco_C_Events.pas ACBrEFDBloco_C_Importar.pas ACBrSpedFiscal.pas1 ponto
-
Muito bom... poderíamos criar uma nova classe de TDFeSSLXmlSignClass, que dispensaria o uso de XMLSec ou MSXML... tudo em código Pascal...1 ponto
-
No seu caso se trata de um CF-e SAT, onde o contexto muda um pouco em relação á NFe e NFC-e. O seu questionamento sobre assinar, consultar, etc não é necessário no SAT. As validações são feitas pelo aparelho e quando o XML é processado já é retornado um arquivo com validade jurídica. O caminho correto para as postagens relacionadas ao SAT é nesse link: https://www.projetoacbr.com.br/forum/forum/44-acbrsat/1 ponto
-
Boas Novas: Consegui assinar usando a MScrypto sem MSXML e LibXMLSec. Amanhã vou refatorar e testar se não causa nenhum problema no certificado.1 ponto
-
Olá @bylaardt, Agradeço muito as suas sugestões, são de altíssimo nível... Confesso que já pensamos ou temos planos semelhantes a algumas de suas sugestões... Temos algo semelhante.. em: https://www.projetoacbr.com.br/forum/forum/63-equipamentos-testados/ Mas nesse momento, ainda estou "criando a necessidade"... Hoje, em dia, tudo que solicito ao fabricante, para a emissão de um relatório como esse, é um equipamento para testes... Isso já é bom, e nos garante acesso a praticamente todos os equipamentos que lançam... Não cobro pelo tempo do técnico / consultor que demora até 5 dias para escrever um relatório.. mas penso em cobrar no futuro... Não em sua totalidade... Isso faz sentido para os nossos componentes, que suportam equipamentos como: SAT, ECF, Impressoras, balanças... Mas não faz sentido para o componente ACBrNFe, por exemplo (que deve ser o carro chefe do ACBr) O fato do ACBr ser focado principalmente em Delphi / Lazarus, também limita o nosso "poder" de barganha com os fabricantes... Com ACBrXXX.dll, conforme está nos nossos planos, isso pode se tornar cada vez mais evidente e real... No momento vou abrir mão dessa receita, e tentar formar uma comunidade de consultores autônomos (freelancers), em: https://www.projetoacbr.com.br/forum/companies/ Acho que isso pode fortalecer MUITO o projeto... pois favorece o livre comercio e a competição... o usuário que precisa de consultoria pode mudar de "fornecedor", se não gostar do atendimento... e o suporte não irá parar, se uma empresa "fechar as portas".... O consultor que estiver ganhando dinheiro prestando serviços, terá total interesse em contribuir tecnicamente para o ACBr... O modelo de consultoria com "freelancers" parece fazer mais sentido para uma comunidade OpenSource Fizemos alguns testes assim... veja que temos um sub-forum da Epson e da Bematech... Mas acho que faltou irmos mais a fundo... termos realmente um contrato de prestação de serviços com o Fabricante, e garantir que toda dúvida referente ao equipamento dele, será tratada com o mesmo padrão do SAC... Vou tratar isso como prioridade... Mais uma vez, muito obrigado...1 ponto
-
O comando ValidarRegrasdeNegocios não valida EAN ou NCM. Os erros exibidos são do momento de geração do XML, veja o arquivo pcnNFeW.pas1 ponto
-
1 ponto
-
Resolvido o problema da ultima linha de compilação do ACBR monitor plus @echo off setlocal EnableDelayedExpansion echo. echo. UTILITARIO PARA BAIXAR E COMPILAR O ACBR MONITOR PLUS echo. echo. PARA PROSSEGUIR VOCE PRECISARA: echo. - GIT INSTALADO echo. - SVN COM COMMAND LINE TOOLS echo. - LAZARUS 1.6 INSTALADO EM C:\LAZARUS echo. PAUSE set lazarus_home=c:\lazarus set path=%path%;%lazarus_home% set opts=--build-all --quiet --lazarusdir=%lazarus_home% set projects=^ fortesreport-ce\Packages\frce.lpk,^ powerpdf\pack_powerpdf.lpk,^ acbr\Pacotes\Lazarus\synapse\laz_synapse.lpk,^ acbr\Pacotes\Lazarus\ACBrComum\ACBrComum.lpk,^ acbr\Pacotes\Lazarus\ACBrDiversos\ACBrDiversos.lpk,^ acbr\Pacotes\Lazarus\PCNComum\PCNComum.lpk,^ acbr\Pacotes\Lazarus\ACBrOpenSSL\ACBrOpenSSL.lpk,^ acbr\Pacotes\Lazarus\ACBrSerial\ACBrSerial.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrTXTComum.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrConvenio115\ACBr_Convenio115.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrLFD\ACBr_LFD.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrPAF\ACBr_PAF.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrSEF2\ACBr_SEF2.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrSintegra\ACBr_Sintegra.lpk,^ acbr\Pacotes\Lazarus\ACBrTXT\ACBrSPED\ACBr_SPED.lpk,^ acbr\Pacotes\Lazarus\ACBrTCP\ACBrTCP.lpk,^ acbr\Pacotes\Lazarus\ACBrTEFD\ACBr_TEFD.lpk,^ acbr\Pacotes\Lazarus\ACBrBoleto\ACBr_Boleto.lpk,^ acbr\Pacotes\Lazarus\ACBrBoleto\FC\Fortes\ACBr_BoletoFC_Fortes.lpk,^ acbr\Pacotes\Lazarus\ACBrBoleto\FC\Laz\ACBr_BoletoFC_LazReport.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrDFeComum.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\ACBr_NFe.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\ACBr_CTe.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\ACBr_GNRE.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\ACBr_MDFe.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFSe\ACBr_NFSe.lpk,^ acbr\Pacotes\Lazarus\ACBrSAT\ACBr_SAT.lpk,^ acbr\Pacotes\Lazarus\ACBrSAT\Extrato\EscPos\ACBr_SAT_Extrato_ESCPOS.lpk,^ acbr\Pacotes\Lazarus\ACBrSAT\Extrato\Fortes\ACBr_SAT_Extrato_Fortes.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrBlocoX\ACBr_BlocoX.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrMDFe\DAMDFE\Fortes\ACBr_MDFe_DAMDFeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Fortes\ACBr_GNREGuiaRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrGNRE\GNRE\Laz\ACBr_GNREGuiaLazReport.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrCTe\DACTE\Fortes\ACBr_CTe_DACTeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\Fortes\ACBr_NFCe_DanfeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFe\Fortes\ACBr_NFe_DanfeRL.lpk,^ acbr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\DANFE\NFCe\EscPos\ACBr_NFe_DanfeESCPOS.lpk,^ "--build-mode=release acbr\Projetos\ACBrMonitorPLUS\Lazarus\ACBrMonitor.lpi" :init0 ( echo. choice /c SN /n /m "Deseja fazer o checkout dos fontes (apaga e baixa) ? [S/N]" if %errorlevel% EQU 1 goto :checkout if %errorlevel% EQU 2 goto :make ) :checkout ( rd /s /q fortesreport-ce git clone https://github.com/fortesinformatica/fortesreport-ce.git if %errorlevel% NEQ 0 goto :error rd /s /q powerpdf svn co svn://svn.code.sf.net/p/lazarus-ccr/svn/components/powerpdf powerpdf if %errorlevel% NEQ 0 goto :error rd /s /q acbr svn co svn://svn.code.sf.net/p/acbr/code/trunk2 acbr if %errorlevel% NEQ 0 goto :error ) :make ( for %%a in (%projects%) do ( call :compile %%~a if !RESULT! NEQ 0 goto :error ) ) echo. OK goto :eof :compile ( lazbuild %opts% %* set RESULT=%ERRORLEVEL% EXIT /B ) :error ( echo. FALHOU ! goto :EOF )1 ponto
-
Sinceramente de minha parte não concordo em depende de outra linguagem no delphi ou lazarus deve atender.-1 pontos