-
Total de ítens
175 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que AlexandreADC postou
-
Beleza, fiz tudo certo só que daí começa a reclamar de outras units [DCC Fatal Error] ACBrUtil.pas(2150): E2411 Unit ACBrCTeConfiguracoes in package ACBr_CTe refers to unit ACBrUtil which is not found in any package. Packaged units must refer only to packaged units vou fazer o mesmo schema com todos erros que irão acontecer... Nem que todas as units fiquem independentes e cada uma tenha todos os outros pacotes inclusos dentro deles... hehe Mas obrigado, com isso já veio uma luz no fim do túnel!
-
eu já vi o tópico viewtopic.php?f=6&t=1298 Mas nem mudando a ordem de compilação não resolveu...
-
Obrigado Italo, então logo poderei usufruir dos componentes para nosso sistema. Agradeço pelo trabalho feito. E parabenizo pela sua dedicação.
-
Boa tarde pessoal, a empresa onde trabalho está migrando do Delphi 2010 ao XE, utilizamos a emissão de NF-e e CT-e do Projeto ACRr. Mas ninguém conseguiu corrigir o erro que se dá ao compilar os Packages referentes ao DACTE e DANFE, nos quais apresentam sempre o mesmo erro: [DCC Fatal Error] ACBrMSXML2_TLB.pas(19986): E2411 Unit ACBrNFeConfiguracoes in package ACBr_NFe2 refers to unit ACBrMSXML2_TLB which is not found in any package. Packaged units must refer only to packaged units e [DCC Fatal Error] ACBrMSXML2_TLB.pas(19986): E2411 Unit ACBrCTeConfiguracoes in package ACBr_CTe refers to unit ACBrMSXML2_TLB which is not found in any package. Packaged units must refer only to packaged units Já tentamos comentar algumas linhas do ACBr.inc Nós usamos o Capicom e não usamos OpenSSL. Projeto já foi alterado para ser compilado com o Rave90. Alguém passou pelo mesmo tipo de erro? Obrigado.
-
Bom dia caros amigos! Gostaria de saber se já está em desenvolvimento ou se já está desenvolvido ou quando começarão a desenvolver as modificações componente para atender as mudanças que foram feitas no schema da versão 1.04 do Conhecimento de Transporte eletrônico. Atenciosamente, Alexandre De Carli
-
obrigado ao(s) desenvolvedores que traduziram as mensagens de saída do CTe... Ajudou um montão!
-
Copia dos arquivos XML para pasta única para processamento
AlexandreADC replied to moisesaugusto's tópico in ACBrNFe
Fico muito agradecido pelos créditos moisés... O link é permanente, nunca vai mudar. Não se preocupe. -
Bem... Deixo explicar melhor, ontem eu estava com pressa e não deu... Essa rotina foi feita para traduzir a mensagem de excessão que retorna após ser executado CTe.Conhecimentos.Valida. É manipulação de String pura, vai ser difícil de entender o código, até pra mim... Porque exige muitos "Copy" e "Pos". Espero que seja útil para vocês! Obrigado!
-
Gente, fiz uma rotina para deixar ao usuário + fácil a visualização da causa da não validação. seguem as fontes da rotina: Mas antes coloque um componente do tipo TXMLDocument com nome de XMLDoc, e selecione o FileName colocando o shema cteTiposBasico_v1.03.xsd!!! Quem estiver disposto a melhorar esta função seria muito bem vindo. E se possível compartilhar com os demais! A função TagToNameTag retorna a descrição, da Tag dentro do Schema...
-
O Grande problema é que eu nem sequer passo algum valor para o ferroSub e DCL e o componente reclama o não preenchimento dele no comando "Validar"... Cheguei a comentar o código de alimentação mas o problema continua... Alguma sugestão? Código: // if (Filtra_Numeros(cdsFerrovarioCNPJ.AsString)<>'') or (cdsFerrovarioRAZSOCIAL_NOME.AsString <> '') or // (cdsFerrovarioCOD_FERROVIA_SUBSTITUTA.AsString <> '') or (cdsFerrovarioINSCE.AsString <> '') // then begin // // Ferrov.ferroSub.CNPJ := Filtra_Numeros(cdsFerrovarioCNPJ.AsString); // Ferrov.ferroSub.cInt := // cdsFerrovarioCOD_FERROVIA_SUBSTITUTA.AsString; // Ferrov.ferroSub.IE := cdsFerrovarioINSCE.AsString; // Ferrov.ferroSub.xNome := cdsFerrovarioRAZSOCIAL_NOME.AsString; // // Ferrov.ferroSub.EnderFerro.xLgr := cdsFerrovarioLOGRADOURO.AsString; // Ferrov.ferroSub.EnderFerro.nro := // cdsFerrovarioENDER_NUMERO.AsString; // Ferrov.ferroSub.EnderFerro.xCpl := // cdsFerrovarioCOMPLEMENTO.AsString; // Ferrov.ferroSub.EnderFerro.xBairro := cdsFerrovarioBAIRRO.AsString; // Ferrov.ferroSub.EnderFerro.cMun := // cdsFerrovarioMUNICIPIO_IBGE.AsInteger; // Ferrov.ferroSub.EnderFerro.xMun := // cdsFerrovarioMUNICIPIO_NOME.AsString; // Ferrov.ferroSub.EnderFerro.CEP := StrToIntDef // (Filtra_Numeros(cdsFerrovarioCEP.AsString), 0); // Ferrov.ferroSub.EnderFerro.UF := cdsFerrovarioMUNICIPIO_UF.AsString; // end; // if not cdsDCL.IsEmpty then // begin // cdsDCL.DisableControls; // cdsDCL.First; // while not cdsDCL.Eof do // begin // with Ferrov.DCL.Add do // begin // serie := cdsDCLSERIE_DCL.AsString; // nDCL := IntToStr(cdsDCLNUMERO_DCL.AsInteger); // dEmi := cdsDCLDT_EMISSAO.AsDateTime; // qVag := cdsDCLQUANT_VAGOES.AsInteger; // pCalc := cdsDCLPESO.AsCurrency; // vTar := cdsDCLVLR_TARIFA.AsCurrency; // vFrete := cdsDCLVLR_FRETE.AsCurrency; // vSAcess := cdsDCLVLR_SERVICOS_ACESSORIOS.AsCurrency; // vTServ := cdsDCLVLR_TOTAL_SERVICO.AsCurrency; // idTrem := cdsDCLID_TREM.AsString; // // if not cdsVagoesDCL.IsEmpty then // begin // cdsVagoesDCL.DisableControls; // cdsVagoesDCL.First; // while not cdsVagoesDCL.Eof do // begin // with detVagDCL.Add do // begin // nVag := cdsVagoesDCLNUM_VAGAO.AsInteger; // cap := cdsVagoesDCLCAP_TONELADAS.AsCurrency; // tpVag := cdsVagoesDCLTP_VAGAO.AsString; // pesoR := cdsVagoesDCLPESO_REAL.AsCurrency; // pesoBC := // cdsVagoesDCLPESO_BASE_CALC_FRETE.AsCurrency; // // if not cdsLacresDCL.IsEmpty then // begin // cdsLacresDCL.DisableControls; // cdsLacresDCL.First; // while not cdsLacresDCL.Eof do // begin // with lacDetVagDCL.Add do // begin // lacDetVagDCL.Items[k].nLacre := // cdsLacresDCLNUMERO_LACRE.AsString; // cdsLacresDCL.Next; // end; // end; // cdsLacresDCL.EnableControls; // end; // // if not cdsContainersDCL.IsEmpty then // begin // cdsContainersDCL.DisableControls; // cdsContainersDCL.First; // while not cdsContainersDCL.Eof do // begin // with contDCL.Add do // begin // nCont := // cdsContainersDCLNUMERO_CONTAINER.AsString; // dPrev := // cdsContainersDCLDT_PREV_ENTREGA // .AsDateTime; // cdsContainersDCL.Next; // end; // end; // cdsContainersDCL.EnableControls; // end; // cdsVagoesDCL.Next; // end; // end; // cdsVagoesDCL.EnableControls; // end; // // end; // cdsDCL.Next; // Inc(i); // end; // cdsDCL.EnableControls; // end; if not cdsvagoes.IsEmpty then begin cdsvagoes.DisableControls; cdsvagoes.First; while not cdsvagoes.Eof do begin with Ferrov.detVag.Add do begin nVag := cdsVagoesNUM_VAGAO.AsInteger; cap := cdsVagoesCAP_TONELADAS.AsCurrency; tpVag := cdsVagoesTP_VAGAO.AsString; pesoR := cdsVagoesPESO_REAL.AsCurrency; pesoBC := cdsVagoesPESO_BASE_CALC_FRETE.AsCurrency; if not cdsVagoesLacres.IsEmpty then begin cdsVagoesLacres.DisableControls; cdsVagoesLacres.First; while not cdsVagoesLacres.Eof do begin with lacDetVag.Add do begin nLacre := cdsVagoesLacresNUMERO_LACRE.AsString; cdsVagoesLacres.Next; end; end; cdsVagoesLacres.EnableControls; end; if not cdsVagoesContainers.IsEmpty then begin cdsVagoesContainers.DisableControls; cdsVagoesContainers.First; while not cdsVagoesLacres.Eof do begin with contVag.Add do begin nCont := cdsVagoesContainersNUMERO_CONTAINER.AsString; dPrev := cdsVagoesContainersDT_PREV_ENTREGA.AsDateTime; cdsVagoesLacres.Next; end; end; cdsVagoesLacres.EnableControls; end; cdsvagoes.Next; end; end; cdsvagoes.EnableControls; end; Mas ele passa no código referente ao DetVag
-
O Grande problema é que eu nem sequer passo algum valor para o ferroSub e DCL e o componente reclama o não preenchimento dele no comando "Validar"... Cheguei a comentar o código de alimentação mas o problema continua... Alguma sugestão? // if (Filtra_Numeros(cdsFerrovarioCNPJ.AsString)<>'') or (cdsFerrovarioRAZSOCIAL_NOME.AsString <> '') or // (cdsFerrovarioCOD_FERROVIA_SUBSTITUTA.AsString <> '') or (cdsFerrovarioINSCE.AsString <> '') // then begin // // Ferrov.ferroSub.CNPJ := Filtra_Numeros(cdsFerrovarioCNPJ.AsString); // Ferrov.ferroSub.cInt := // cdsFerrovarioCOD_FERROVIA_SUBSTITUTA.AsString; // Ferrov.ferroSub.IE := cdsFerrovarioINSCE.AsString; // Ferrov.ferroSub.xNome := cdsFerrovarioRAZSOCIAL_NOME.AsString; // // Ferrov.ferroSub.EnderFerro.xLgr := cdsFerrovarioLOGRADOURO.AsString; // Ferrov.ferroSub.EnderFerro.nro := // cdsFerrovarioENDER_NUMERO.AsString; // Ferrov.ferroSub.EnderFerro.xCpl := // cdsFerrovarioCOMPLEMENTO.AsString; // Ferrov.ferroSub.EnderFerro.xBairro := cdsFerrovarioBAIRRO.AsString; // Ferrov.ferroSub.EnderFerro.cMun := // cdsFerrovarioMUNICIPIO_IBGE.AsInteger; // Ferrov.ferroSub.EnderFerro.xMun := // cdsFerrovarioMUNICIPIO_NOME.AsString; // Ferrov.ferroSub.EnderFerro.CEP := StrToIntDef // (Filtra_Numeros(cdsFerrovarioCEP.AsString), 0); // Ferrov.ferroSub.EnderFerro.UF := cdsFerrovarioMUNICIPIO_UF.AsString; // end; // if not cdsDCL.IsEmpty then // begin // cdsDCL.DisableControls; // cdsDCL.First; // while not cdsDCL.Eof do // begin // with Ferrov.DCL.Add do // begin // serie := cdsDCLSERIE_DCL.AsString; // nDCL := IntToStr(cdsDCLNUMERO_DCL.AsInteger); // dEmi := cdsDCLDT_EMISSAO.AsDateTime; // qVag := cdsDCLQUANT_VAGOES.AsInteger; // pCalc := cdsDCLPESO.AsCurrency; // vTar := cdsDCLVLR_TARIFA.AsCurrency; // vFrete := cdsDCLVLR_FRETE.AsCurrency; // vSAcess := cdsDCLVLR_SERVICOS_ACESSORIOS.AsCurrency; // vTServ := cdsDCLVLR_TOTAL_SERVICO.AsCurrency; // idTrem := cdsDCLID_TREM.AsString; // // if not cdsVagoesDCL.IsEmpty then // begin // cdsVagoesDCL.DisableControls; // cdsVagoesDCL.First; // while not cdsVagoesDCL.Eof do // begin // with detVagDCL.Add do // begin // nVag := cdsVagoesDCLNUM_VAGAO.AsInteger; // cap := cdsVagoesDCLCAP_TONELADAS.AsCurrency; // tpVag := cdsVagoesDCLTP_VAGAO.AsString; // pesoR := cdsVagoesDCLPESO_REAL.AsCurrency; // pesoBC := // cdsVagoesDCLPESO_BASE_CALC_FRETE.AsCurrency; // // if not cdsLacresDCL.IsEmpty then // begin // cdsLacresDCL.DisableControls; // cdsLacresDCL.First; // while not cdsLacresDCL.Eof do // begin // with lacDetVagDCL.Add do // begin // lacDetVagDCL.Items[k].nLacre := // cdsLacresDCLNUMERO_LACRE.AsString; // cdsLacresDCL.Next; // end; // end; // cdsLacresDCL.EnableControls; // end; // // if not cdsContainersDCL.IsEmpty then // begin // cdsContainersDCL.DisableControls; // cdsContainersDCL.First; // while not cdsContainersDCL.Eof do // begin // with contDCL.Add do // begin // nCont := // cdsContainersDCLNUMERO_CONTAINER.AsString; // dPrev := // cdsContainersDCLDT_PREV_ENTREGA // .AsDateTime; // cdsContainersDCL.Next; // end; // end; // cdsContainersDCL.EnableControls; // end; // cdsVagoesDCL.Next; // end; // end; // cdsVagoesDCL.EnableControls; // end; // // end; // cdsDCL.Next; // Inc(i); // end; // cdsDCL.EnableControls; // end; if not cdsvagoes.IsEmpty then begin cdsvagoes.DisableControls; cdsvagoes.First; while not cdsvagoes.Eof do begin with Ferrov.detVag.Add do begin nVag := cdsVagoesNUM_VAGAO.AsInteger; cap := cdsVagoesCAP_TONELADAS.AsCurrency; tpVag := cdsVagoesTP_VAGAO.AsString; pesoR := cdsVagoesPESO_REAL.AsCurrency; pesoBC := cdsVagoesPESO_BASE_CALC_FRETE.AsCurrency; if not cdsVagoesLacres.IsEmpty then begin cdsVagoesLacres.DisableControls; cdsVagoesLacres.First; while not cdsVagoesLacres.Eof do begin with lacDetVag.Add do begin nLacre := cdsVagoesLacresNUMERO_LACRE.AsString; cdsVagoesLacres.Next; end; end; cdsVagoesLacres.EnableControls; end; if not cdsVagoesContainers.IsEmpty then begin cdsVagoesContainers.DisableControls; cdsVagoesContainers.First; while not cdsVagoesLacres.Eof do begin with contVag.Add do begin nCont := cdsVagoesContainersNUMERO_CONTAINER.AsString; dPrev := cdsVagoesContainersDT_PREV_ENTREGA.AsDateTime; cdsVagoesLacres.Next; end; end; cdsVagoesLacres.EnableControls; end; cdsvagoes.Next; end; end; cdsvagoes.EnableControls; end; Mas ele passa no código referente ao DetVag
-
Amigos, estou tendo problemas para validação dos campos no Modal Ferroviário... Pelo que consta no Manual do CTe os dados da Ferrovia Substituída e dos vagões DCL não são obrigatórios. Mas no "Validar" do componente segue a mensagem de erro... Content for element '{http://www.portalfiscal.inf.br/cte}ferrov' is incomplete according to the DTD/Schema. Expecting: {http://www.portalfiscal.inf.br/cte}ferroSub, {http://www.portalfiscal.inf.br/cte}DCL, {http://www.portalfiscal.inf.br/cte}d.... Quando eu alimento o componente, eu coloquei 1 condição para ele não inserir nada nos campos do componente referentes a esses dados... E agora? Coloco como obrigatório o preenchimento para o cliente ou é erro em meu código?
-
Envio para o servidor SCAN não está implementada? Retorno Exceção: URL não disponível para o Estado solicitado. No componente estava o UF como PR e tipo de envio como servidor SCAN
-
Aham... Já consegui enviar novamente! Obrigado pela ajuda!
-
Italo, eu estava focado na NF-e e em outros problemas e resolvi checar melhor o meu emissor da Cte para confirmar que estava tudo certo... Mas não consegui enviar NENHUM conhecimento para a receita... 225-Rejeição: Falha no Schema XML do CT-e Já tentei de tudo... Tentei mandar com dados diferentes... Atualizar os schemas, cadastrar mais dados para o conhecimento... Enfim... O componente valida o CTe, mas a SEFAZ não. Estes são os XMLs que o componente gerou durante uma tentativa de envio... Download - Mediafire. Obrigado pela atenção!
-
Outra coisa... Você está usando do jeito errado a procedure "Add" no seu caso teria que ser usado: Pois cada vez que você usa DM.ACBrCTe1.Conhecimentos.Add.Ide.forPag (por exemplo), ele adiciona +1 conhecimento de transporte ao seu componente
-
Bem... Quanto ao FileCtrl, é uma warning que seu delphi emite pois esta Unit usa elementos do Windows e não pode rodar em outra plataforma... E aos 2 erros abaixo, você tem que adicionar a Unit: "pcnConversao" na cláusula uses do seu código... E também certifique-se que seu pacote do ACBr está atualizado! Espero ter ajudado!
-
Ok! Eu imaginava que o próprio componente se encarregaria de gerar e manter ele... Obrigado pela informação!
-
Acredito que é por causa da função "LocCTeW.GerarXml;" no assinar ;s
-
Caros amigos, eu encontrei um grande problema com a geração do XML do CT-e. Percebi que a cada função que executo, seja ele: CTe.Conhecimentos.GerarCTe; (que realmente gera o código), o CTe.Conhecimentos.Assinar; e depois CTe.Conhecimentos.Valida; está trocando a chave (CTe.Conhecimentos.Items[0].CTe.infCTe.ID) do CTe, mais pra frente dá uma grande dor de cabeça, pois o arquivo XML é salvo no disco no "Assinar" perde a chave que tinha na procedure "Validar" (setando então outra em seu lugar)... O código que fiz para gerar, assinar e validar é o seguinte: // cria o XML no componente try CTe.Conhecimentos.GerarCTe; except on Exc: Exception do begin Application.MessageBox( 'Falha ao Gerar o XML. Verifique mensagens de retorno', 'Atenção', MB_ICONERROR); rtfMsgRetorno.Clear; rtfMsgRetorno.Lines.Add(Exc.Message); lblEtapa1.Visible := True; Img1Nao.Visible := True; // Img XML gerado Exit; end; end; try CTe.Conhecimentos.Assinar; except on Exc: Exception do begin Application.MessageBox( 'Falha na Assinatura do XML. Verifique mensagens de retorno' , 'Atenção', MB_ICONERROR); rtfMsgRetorno.Clear; rtfMsgRetorno.Lines.Add(Exc.Message); Img3Nao.Visible := True; Exit; end; end; ChaveDV := CTe.Conhecimentos.Items[0].CTe.infCTe.ID; rtfMsgRetorno.Lines.Add('Chave de Acesso do CT-e: ' + ChaveDV); // caso der erro no procedimento validar, retorna excecao try CTe.Conhecimentos.Valida; except on Exc: Exception do begin Application.MessageBox( 'Falha de Validação do XML. Verifique mensagens de retorno' , 'Atenção', MB_ICONERROR); rtfMsgRetorno.Clear; rtfMsgRetorno.Lines.Add(Exc.Message); Img4Nao.Visible := True; Exit; end; end; ************************************************************************************************************** Em que lugar eu errei? Obrigado pela atenção!
-
Olá italojjr, eu peguei os exemplos de lá mesmo... Só que eu não costumo usar tanto o with pois depois de um tempo o código vai ficando sujo pois já não se sabe quem é dono de qual propriedade Ainda mais quando tem quase mais de 500 properties para aliementar... Obrigado mesmo assim!
-
ahhh... Ok! Entendi! Essa função está um pouco confusa por causa disso... Obrigado pela ajuda!
-
pessoal, estou uma grande dúvida sobre as variáveis e tipos que são alimentadas no componente da CT-e. A property Add. adiciona mais um registro para os casos de x-n? Ou seja, se eu fizer: InfCTeComp.Add.vPresComp.compComp.Add.xNome := cdsComplementadoDetNOME_COMPONENTE.AsString; InfCTeComp.Add.vPresComp.compComp.Add.vComp := cdsComplementadoDetVLR_COMPONENTE.AsCurrency; ele irá adicionar apenas 1 registro com os 2 valores certo? Mas se por algum caso eu tenha uma condição em que ele não passe em uma das Tags no Add Exemplo: InfCTeComp.Add.vPresComp.compComp.Add.xNome := cdsComplementadoDetNOME_COMPONENTE.AsString; e depois eu faça outro InfCTeComp.Add.vPresComp.compComp.Add.xNome := cdsComplementadoDetNOME_COMPONENTE.AsString; InfCTeComp.Add.vPresComp.compComp.Add.vComp := cdsComplementadoDetVLR_COMPONENTE.AsCurrency; o vComp vai estar no 1° ou 2° registro do componente? Os dois são sincronizados automaticamente? Obrigado!
-
Muito obrigado Italo! Isso diminui minhas preocupações
-
Olá caros amigos, tenho uma duvida na questão de quais fontes estão sendo alteradas durante correções ou melhorias do ACBrCTe, é que atualmente uso o Pacote NFe2, mas o changelog do CTe está referenciando o PCN, o qual o pacote da NFe2 não é associada... Posso atualizar o Pacote do CTe que está na pasta da NFe2 sem problemas? Agradeço desde já!