-
Total de ítens
274 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Leandro Miler Santana postou
-
Ítalo, peguei um exemplo de uma outra transportadora que já usa desta forma, imprimindo duas vias do DACTE em um A4. Se pudessem desenvolver ficaria perfeito. Acho que quase todas as empresas gostariam de usar esta modalidade por economia de papel. Como já disse Ítalo, meu conhecimento em Delphi ainda é pouco, senão eu mesmo desenvolvia e disponibilizaria os fontes. cte_duasvias_por_a4.pdf
-
Lá no internet explorer em configurações de Internet / Avançadas, e procure por duas opções que dizem mais ou menos assim 'certificados revogados' ou alguma coisa que contenha a palavra 'revogado' e desmarque estas opções. Talvez resolva o problema.
-
Italo, bom dia. Já que está pensando em mexer no formulário A5, existe a possibilidade de colocar uma opção para imprimir as duas vias do A5 dentro de um A4 ?
-
Duvidas Exemplo De Enviarlote
Leandro Miler Santana replied to Leandro Miler Santana's tópico in ACBrCTe
Ha entendi legal, vou dar uma olhadinha no meu sistema e verificar se consigo corrigi-lo para mostrar os erros corretamente. Obrigado Ítalo. abcs -
Duvidas Exemplo De Enviarlote
Leandro Miler Santana replied to Leandro Miler Santana's tópico in ACBrCTe
Ok muito obrigado por tirar estas dúvidas.. Ítalo você está de parabéns com sua iniciativa. Mas ainda me restou um dúvida. Ha respeito do controle de erros e mostrar os erros ao usuário final, Veja abaixo estas linhas do seu exemplo: DMCTE.CTe.WebServices.Retorno.Recibo := sRecibo; // este WebServices.Retorno é necessário pra verificar se houve erro ? e se houve erro no Enviar(Lote) esta linha seria processada ? DMCTE.CTe.WebServices.Retorno.Executar; Estas duas linhas acima, são necessárias colocar quando da certo a validação ou quando da errado a validação ou então eu coloco ela nos dois casos ? Agradeço sua atenção. -
Olá pessoal, boa tarde. Apesar de estar gerando os CT-e em minha aplicação, ainda tenho algumas dúvidas à respeito do ACBrCTE. Tenho algumas dúvidas a respeito do exemplo EnviarLote do componente ACBrCTE. Gostaria de quem souber possa me explicar. Peço antecipadamente desculpas pois sou novo no Delphi, e desde já agradeço muito a atenção de todos.. EnviarLote.PAS // Gera o XML, Assina e Salva o Arquivo DMCTE.CTe.Conhecimentos.Assinar; // eh necessario usar esta linha ?????? a função CTE.enviar ja não faz isso ? MemoStatus.Lines.Add(' Assinado(s)'); // Valida os dados do XML salvo DMCTE.CTe.Conhecimentos.Valida; // eh necessario usar esta linha ?????? a função CTE.enviar ja não faz isso ? ou esta linha é usada somente para testar os campos que o usuario digitou ? MemoStatus.Lines.Add(' Validado(s)'); // EnviaSefaz = variável booleana // Se False, apenas gera o XML, assina, valida e Imprime o DACTe não protocolado // Se True, gera o XML, assina, valida, envia para o SEFAZ e Imprime o DACTe protocolado if DM_CTA.EnviaSefaz then begin MemoStatus.Lines.Add(' Aguarde Enviando...'); // Envia o lote de Conhecimentos para o SEFAZ e Imprime o DACTe // Lote = variável que contem o numero do lote (numero sequencial) DMCTE.CTe.Enviar(Lote); // Caso der erro no envio do lote, o programa prosegueria normalmente daqui pra frente ou causaria uma exceção ? sRecibo := DMCTE.CTe.WebServices.Enviar.Recibo; sStat := IntToStr(DMCTE.CTe.WebServices.Enviar.cStat); sMotivo := DMCTE.CTe.WebServices.Enviar.xMotivo; // Este xMotivo, listaria o erro caso o mesmo existisse ? sDataHora := DateTimeToStr(DMCTE.CTe.WebServices.Enviar.dhRecbto); MemoStatus.Lines.Add('-------------------------------------------------------------------------------------------'); MemoStatus.Lines.Add(' => Recibo nº ' + sRecibo); MemoStatus.Lines.Add('-------------------------------------------------------------------------------------------'); MemoStatus.Lines.Add(' Data / Hora Status do CT-e'); MemoStatus.Lines.Add(' ---------------- ---------------------------------------'); MemoStatus.Lines.Add(' ' + sDataHora + ' ' + sStat + ' - ' + sMotivo); MemoStatus.Lines.Add('-------------------------------------------------------------------------------------------'); MemoStatus.Lines.Add(' '); MemoStatus.Lines.Add('-------------------------------------------------------------------------------------------'); MemoStatus.Lines.Add(' => Consultando Recibo nº ' + sRecibo); MemoStatus.Lines.Add('-------------------------------------------------------------------------------------------'); DMCTE.CTe.WebServices.Retorno.Recibo := sRecibo; // este WebServices.Retorno é necessário pra verificar se houve erro ? e se houve erro no Enviar(Lote) esta linha seria processada ? DMCTE.CTe.WebServices.Retorno.Executar; MemoStatus.Lines.Add(' Conhecimento Número do protocolo Status do CT-e'); MemoStatus.Lines.Add(' ------------ ----------------------------------- ---------------------------------------'); for i := 0 to (DMCTE.Cte.WebServices.Retorno.CteRetorno.ProtCTe.Count - 1) do begin sDataHora := DateTimeToStr(DMCTE.CTe.WebServices.Retorno.CteRetorno.ProtCTe.Items.dhRecbto); sProtocolo := DMCTE.CTe.WebServices.Retorno.CteRetorno.ProtCTe.Items.nProt; sStat := IntToStr(DMCTE.CTe.WebServices.Retorno.CteRetorno.ProtCTe.Items.cStat); sMotivo := DMCTE.CTe.WebServices.Retorno.CteRetorno.ProtCTe.Items.xMotivo; sConhecimento := Copy(DMCTE.CTe.WebServices.Retorno.CteRetorno.ProtCTe.Items.chCTe, 26, 3) + '.' + Copy(DMCTE.CTe.WebServices.Retorno.CteRetorno.ProtCTe.Items.chCTe, 29, 3) + '.' + Copy(DMCTE.CTe.WebServices.Retorno.CteRetorno.ProtCTe.Items.chCTe, 32, 3); MemoStatus.Lines.Add(' ' + sConhecimento + ' ' + sProtocolo + ' ' + sDataHora + ' ' + sStat + ' - ' + sMotivo); if DMCTE.CTe.WebServices.Retorno.CTeRetorno.ProtCTe.Items.cStat=100 then begin DM_CNT.IncAltDel.SQL.Clear; DM_CNT.IncAltDel.SQL.Add('Update Cnt_Conhecimento Set'); DM_CNT.IncAltDel.SQL.Add('Emissao = :xEmissao,'); DM_CNT.IncAltDel.SQL.Add('ChaveCTe = :xChave,'); DM_CNT.IncAltDel.SQL.Add('Enviado = :xEnviado,'); DM_CNT.IncAltDel.SQL.Add('Protocolado = :xProtocolado,'); DM_CNT.IncAltDel.SQL.Add('Protocolo = :xProtocolo,'); DM_CNT.IncAltDel.SQL.Add('Impresso = :xImpresso'); DM_CNT.IncAltDel.SQL.Add('Where Serie = :xSerie'); DM_CNT.IncAltDel.SQL.Add('and Numero = :xNumero'); DM_CNT.IncAltDel.Params[0].AsDateTime:=DateOf(DMCTE.CTe.Conhecimentos.Items.CTe.Ide.dhEmi); DM_CNT.IncAltDel.Params[1].AsString:=Copy(DMCTE.CTe.Conhecimentos.Items.CTe.inFCTe.ID,4,44); DM_CNT.IncAltDel.Params[2].AsString:='S'; DM_CNT.IncAltDel.Params[3].AsString:='S'; DM_CNT.IncAltDel.Params[4].AsString:=sProtocolo; DM_CNT.IncAltDel.Params[5].AsString:='S'; DM_CNT.IncAltDel.Params[6].AsInteger:=DMCTE.CTe.Conhecimentos.Items.CTe.Ide.serie; DM_CNT.IncAltDel.Params[7].AsInteger:=DMCTE.CTe.Conhecimentos.Items.CTe.Ide.nCT; DM_CNT.IncAltDel.ExecSQL; end; end; MemoStatus.Lines.Add('-------------------------------------------------------------------------------------------'); end else begin MemoStatus.Lines.Add(' Aguarde Imprimindo...'); // Somente imprime o CTe DMCTE.CTe.Conhecimentos.Imprimir; // a rotina enviar(lote) jã nao imprimiria o Dacte ou realmente esta linha é necessario ? for i := 0 to (DMCTE.CTe.Conhecimentos.Count - 1) do begin DM_CNT.IncAltDel.SQL.Clear; DM_CNT.IncAltDel.SQL.Add('Update Cnt_Conhecimento Set'); DM_CNT.IncAltDel.SQL.Add('Emissao = :xEmissao,'); DM_CNT.IncAltDel.SQL.Add('ChaveCTe = :xChave,'); DM_CNT.IncAltDel.SQL.Add('Impresso = :xImpresso'); DM_CNT.IncAltDel.SQL.Add('Where Serie = :xSerie'); DM_CNT.IncAltDel.SQL.Add('and Numero = :xNumero'); DM_CNT.IncAltDel.Params[0].AsDateTime:=DateOf(DMCTE.CTe.Conhecimentos.Items.CTe.Ide.dhEmi); DM_CNT.IncAltDel.Params[1].AsString:=Copy(DMCTE.CTe.Conhecimentos.Items.CTe.inFCTe.ID,4,44); DM_CNT.IncAltDel.Params[2].AsString:='S'; DM_CNT.IncAltDel.Params[3].AsInteger:=DMCTE.CTe.Conhecimentos.Items.CTe.Ide.serie; DM_CNT.IncAltDel.Params[4].AsInteger:=DMCTE.CTe.Conhecimentos.Items.CTe.Ide.nCT; DM_CNT.IncAltDel.ExecSQL; end; end; end;
-
Emissão Cte Na Maquina Do Cliente
Leandro Miler Santana replied to Emanuel Andrade's tópico in ACBrCTe
Não tenho tanta experiencia como o resto do pessoal. Mas já passei por isso. Tem alguma coisa errada com os dados. Ou inscrição estadual errada, ou chave de danfe errada, ou alguma coisa. E você não está conseguindo tratar os erros de retorno. De uma olhada na pasta em que os xmls são salvos que lá estará os xmls de envio e resposta, e provavelmente o erro estará descrito com mais clareza dentro destes xmls. -
Como Mostrar O Erro De Retorno Do Sefaz Ao Cliente
Leandro Miler Santana replied to Leandro Miler Santana's tópico in ACBrCTe
Ok. vou dar uma procurada. Valew pela informação. -
O bom seria |forçar o usuário a digitar além da chave do Danfe, a data de Emissão, Serie e Valor da nota fiscal. (Argumente que se não fizer isto, não vai gerar sintegra) O ótimo seria criar uma rotina para importar todos os dados dos xmls dos danfes para o conhecimento do frete, evitando que o usuário tivesse que digitar vários campos. Nestes dois casos estou falando de uma empresa transportadora.
-
Erro Na Validacao Ie Nao Vinculado Ao Cnpj No Cte
Leandro Miler Santana replied to walter faria's tópico in ACBrCTe
Na realidade, de acordo com o meu pouco conhecimento, é o seguinte. Em alguns casos, por algum motivo a empresa perde o direito de ser Contribuinte, (não sei que motivos leva a isto). Pra certifica-se disto, basta consultar o Sintegra destas empresas que no próprio Sintegra vai avisar que esta determinada empresa não pode participar de documentos fiscais que possam vir a gerar créditos ou débitos de impostos. E somente participar como destinatário de mercadorias em Conhecimentos de Fretes. Então vá no cadastro da empresa e coloque Isento, que vai funcionar, desta forma você esta avisando ao Sefazl que a empresa não é mais contribuinte. Desta forma provavelmente vai validar. -
Como testar o CT-e com certificado digital de desenvolvedor
Leandro Miler Santana replied to Michael Belmonte's tópico in ACBrCTe
Pega o certificado do cliente e instale no computador de testes de vocês. -
CT-E COM REMETENTE DO EXTERIOR.
Leandro Miler Santana replied to Hilderaldo Barbosa's tópico in ACBrCTe
Concordo com o Ítalo, de acordo com a orientação que tive de alguns contadores, tem que ser assim mesmo, coloque a transportadora como Expedidor, ou pode ser até uma pessoa física (CPF) como expedidor, sem problemas. -
Separar O Xml Do Cte Dos Demais Arquivos De Envio E Retorno?
Leandro Miler Santana replied to dfdixini's tópico in ACBrCTe
Não sou expert no componente, mas acho que fazendo isto abaixo vai funcionar do jeito que você quer. // Indica se o ANO/MES para o nome da pasta vira da data de emissao da Nota CTE.Configuracoes.Arquivos.EmissaoPathCTe := True; // Cria as subpastas NFE, INU, CAN, DPEC dentro de ACBRNFe.Configuracoes.Geral.PathSalvar // para gravar os arquivos CTE.Configuracoes.Arquivos.AdicionarLiteral:=true; // Cria pasta mensais 'YYYYMM' dentro de ACBRNFe.Configuracoes.Geral.PathSalvar CTE.Configuracoes.Arquivos.PastaMensal := True; -
Como Mostrar O Erro De Retorno Do Sefaz Ao Cliente
Leandro Miler Santana replied to Leandro Miler Santana's tópico in ACBrCTe
Certo Ìtalo esta opção eu já conhecia, mas gostaria de tratar os erros, tipo assim, verificar o cSTAT e mostrar ao cliente detalhadamente o erro de acordo com a tabela do manual. Como consigo resgatar o cSTAT do xml de retorno quando acontece o erro ? Desde ja agradeço muito sua atenção. -
Como Mostrar O Erro De Retorno Do Sefaz Ao Cliente
um tópico no fórum postou Leandro Miler Santana ACBrCTe
Bom dia pessoal. Estou usando o ACBRCte, e está funcionando muito bem. Mas estou tendo um problema, pois não consigo mostrar o erro de retorno ao usuario. Aquele erro que vem via XML. Sempre que da o erro, aparece um erro generico que não da pra identificar. E se eu for na pasta que salva os arquivos XMLs, o arquivo de retorno do erro está lá. Qual função devo utilizar pra mostrar este erro ou em um messagebox ou mesmo no campo memo. ? Alguem poderia me ajudar como consigo fazer isso ? -
Este é um grande problema, pois o 71 é obrigatorio , senão o validador do sintegra nao valida. Faz o seguinte, manda os xmls dos CTEs para o contador importar no sistema contabil dele, e deixe-o gerar o sintegra por lá. O correto seria o sintegra ter uma atualização no layout para contemplar somente a chave das notas. Mas provavelmente com o SPED o sintegra vai morrer. Acho que nem vão mexer mais com isso.
-
Pessoal, bom dia !! Tenho um cliente que está trocando o servidor, somente o equipamento. Ele usava o Windows Server 2008 Standart 32 bits. E agora adquiriu um outro equipamento Core I5 com 8GB, e instalo a mesma versão do Windows 2008. Só que neste computador novo o sistema dá "Fora de Operação - Sem serviço" - e foi instalado Capicom, o certificado, os SCHEMAS tudo certinho como estava no computador antigo (que funcionava perfeitamente) Alguém já passou por isso e poderia me dar uma dica do que poderia ser ? Desde já agradeço a atenção de todos.
-
Existe algumas possibilidades Pela informação dada, você esta querendo colocar o tipo do documento como NF (InfNF)- Nota Fiscal Se for colocar este tipo os campos obrigatorios são : - serie, ndoc, dEmi, vNF, nCFOP (Principal CFOP Do DANFE), nPeso Se for colocar o tipo do documento como NFE (InfNFe) Os campos obrigatorios sao chave, PIN (se for carga pra Manaus), nPeso InfNF é diferente de InfNFE. Veja se não é isto.
-
Erro Estranho Na Validação.
Leandro Miler Santana replied to Leandro Miler Santana's tópico in ACBrCTe
Haaa isso eu já fiz Na realidade o meu sistema está funcionando em algumas empresas, mas as vezes tenho este problema. Erro ao salvar .CAnnot create file "Z:\CTE\SP\211307\CTe\imento(s) não confirmados(s): 2304->Rejeicao-ped-sit.xml". A sintaxe do nome do arquivo, pasta ou nome do volume está incorreta. Este erro acontece mais ou menos em 1% das vezes, daí oriento meu cliente a fazer varias coisas como, corrigir cadastro, se nao der, apagar e incluir novamente o cliente da base, e se nao der, e as vezes até apagar e incluir novamente o conhecimento na base de dados, depois disso quase sempre resolve. Mas não entendo o que seria isso, e porque da este erro. Também não entendo porque não consigo discrimiar os erros que acontecem, na maioria das vezes esta mesma mensagens é mostrada para vários tipos de erros. -
Erro Estranho Na Validação.
Leandro Miler Santana replied to Leandro Miler Santana's tópico in ACBrCTe
Eu uso a versão do ACBr atualizada do dia 17/06/2013. Desculpem-me se estiver fazendo alguma coisa errada, pois sou novato em Delphi, mas não consigo encontrar esta opção em que o Ítalo me disse. Veja o arquivo anexo. -
Erro Estranho Na Validação.
Leandro Miler Santana replied to Leandro Miler Santana's tópico in ACBrCTe
Ítalo, não existe esta opção no meu componente !!! -
Erro Estranho Na Validação.
Leandro Miler Santana replied to Leandro Miler Santana's tópico in ACBrCTe
Neste caso ele não gera arquivo de envio nem de retorno, não consigo achá-los. -
Olá pessoal, o que seria o erro abaixo está acontecendo com certa frequencia. Erro ao salvar .CAnnot create file "Z:\CTE\SP\211307\CTe\imento(s) não confirmados(s): 2304->Rejeicao-ped-sit.xml". A sintaxe do nome do arquivo, pasta ou nome do volume está incorreta.
-
Bom dia pessoal. Estou usando o ACBrCTE e graças a Deus está funcionando bem, o único detalhe é que na maioria das vezes que retorna o erro, não vem identificado, não sei se estou fazendo algo errado A maioria dos erros retorna que acontece, o sistema sempre retorna a mesma mensagem, e a mensagem diz que ele não está encontrado o caminho do XML ou então não está conseguindo gravar o XML. Na maioria das vezes é problema com inscrição Estadual errada, mas eu acho que a mensagem deveria ser especifica o que não está acontecendo, o que será que posso estar fazendo de errado? Vou postar uma parte do meu codigo aqui e se alguem puder me ajudar, vou ficar agradecido. sERRO:=' '; IF NOT CTE.Enviar(0,false) then // esta funcao assina e valida begin sERRO:='X'; sTxtErro:=CTE.WebServices.Retorno.RetornoWS; ShowMessage(CTE.WebServices.Retorno.xMotivo); ShowMessage(CTE.WebServices.Retorno.xMsg); end else begin // buscando protocolo gerado ---------------------------------------------------- sProtocolo:=CTE.WebServices.Retorno.Protocolo; sRecibo:=CTE.WebServices.Retorno.Recibo; sNomeArquivo:=CTE.Conhecimentos.Items[0].NomeArq; sChaveCTE:=CTE.WebServices.Retorno.ChaveCte; // Atualiza dados no CTRC - DBF ------------------------------------------------ dm1.Nota.Edit; dm1.NotaRECIBO.Value:=sRecibo; dm1.NotaPROTOC.Value:=sProtocolo; dm1.NotaCHAVECTE.Value:=sChaveCTE; dm1.NotaARQUIVO.Value:=sNomeArquivo; dm1.NotaRANDOM.AsInteger:=iNum; dm1.NotaEMAILENV.AsString:=Para; if (sERRO='X') then Begin dm1.NotaTXTERRO.Value:=sTxtErro; dm1.NotaERROCTE.Value:=sERRO; End; dm1.Nota.Post; CTE.DACTe.NumCopias:=dm1.CadFilVIAS.AsInteger; if (dm1.CadFilDAC_APOS.AsString='S') then CTE.Conhecimentos.Imprimir; CTE.Conhecimentos.ImprimirPDF; MemoResp.Lines.Text := UTF8Encode(CTE.WebServices.Retorno.RetWS); memoRespWS.Lines.Text := UTF8Encode(CTE.WebServices.Retorno.RetWS); LoadXML(MemoResp, WBResposta); MemoDados.Lines.Add(''); MemoDados.Lines.Add('Envio CTe'); MemoDados.Lines.Add('tpAmb: '+ TpAmbToStr(CTE.WebServices.Retorno.TpAmb)); MemoDados.Lines.Add('verAplic: '+ CTE.WebServices.Retorno.verAplic); MemoDados.Lines.Add('cStat: '+ IntToStr(CTE.WebServices.Retorno.cStat)); MemoDados.Lines.Add('cUF: '+ IntToStr(CTE.WebServices.Retorno.cUF)); MemoDados.Lines.Add('xMotivo: '+ CTE.WebServices.Retorno.xMotivo); MemoDados.Lines.Add('cMsg: '+ IntToStr(CTE.WebServices.Retorno.cMsg)); MemoDados.Lines.Add('xMsg: '+ CTE.WebServices.Retorno.xMsg); MemoDados.Lines.Add('Recibo: '+ CTE.WebServices.Retorno.Recibo); MemoDados.Lines.Add('Protocolo: '+ CTE.WebServices.Retorno.Protocolo); sSMTPHost:=dm1.CadFilSMTPHOST.AsString; sSMTPUser:=DM1.CadFilSMTPUSER.AsString; sSMTPPass:=DM1.CadFilSMTPPASS.AsString; sSMTPPort:=DM1.CadFilSMTPPORT.AsString; CC:=TstringList.Create; // cc.Add('[email protected]'); Mensagem:=TstringList.Create; Mensagem.Add('Email enviado automaticamente '); Mensagem.Clear; Mensagem.Add('Comunicamos por este e-mail que o Conhecimento Eletrônico (Chave='+ Copy(CTe.Conhecimentos.Items[0].CTe.inFCTe.ID,4,44)+ ') obteve autorização de uso sob o protocolo: '+CTe.Conhecimentos.Items[0].CTe.procCTe.nProt); Mensagem.Add(' '); Mensagem.Add('Enviamos em anexo o arquivo XML e o DACTE do respectivo CT-e.'); Mensagem.Add(' '); Mensagem.Add('Atenciosamente,'); Mensagem.Add(' '); Mensagem.Add(dm1.CadFilNOME2.AsString); Mensagem.Add(' '); Mensagem.Add(' '); Mensagem.Add(' '); Mensagem.Add(' >>> Desenvolvido por Infotrans <<<'); if (dm1.CadFilSSL.AsString='S') then bSSL := true else bSSL := false; CTE.Conhecimentos.Items[0].EnviarEmail(sSMTPHost ,sSMTPPort ,sSMTPUser ,sSMTPPass ,sSMTPUser , Para , sTituloMensagem , mensagem , bSSL // conexao segura False , True // enviar pdf , nil // lista de emails , nil , False ); end; finally // CC.Free; sCONHEC:=dm1.NotaCONHEC.AsString; sERRO_VALIDACAO:=CTE.WebServices.Retorno.Msg; sERRO:=COPY(sERRO_VALIDACAO,0,10); if (sERRO='Conhecimen') then begin // consulta o SEFAZ e busca o recibo nPosicaoChaveOriginal:=Pos('chCTe:', sERRO_VALIDACAO)+7; sChaveOriginal:=copy(sERRO_VALIDACAO,nPosicaoChaveOriginal,44); CTe.WebServices.Consulta.CTeChave := sChaveOriginal; CTe.WebServices.Consulta.Executar; MemoResp.Lines.Text := UTF8Encode(CTe.WebServices.Consulta.RetWS); memoRespWS.Lines.Text := UTF8Encode(CTe.WebServices.Consulta.RetornoWS); LoadXML(MemoResp, WBResposta); iProtINI:=Pos('<nProt>', MemoResp.Lines.Text)+7; iProtFim:=Pos('</nProt>', MemoResp.Lines.Text); iProtSIZE:=iProtFIM-iProtINI; sProtocolo:=Copy(MemoResp.Lines.Text,iProtINI,iProtSIZE); sNumeroCTE:=Copy(sChaveOriginal,28,07); dm1.Nota.Edit; dm1.NotaTXTERRO.AsString:=sERRO_VALIDACAO; dm1.NotaERROCTE.AsString:='S'; dm1.NotaPROTOC.AsString:=sProtocolo; dm1.NotaCHAVECTE.AsString:=sChaveOriginal; dm1.Nota.Post; end else begin CTE.Conhecimentos.Items[0].SaveToFile; // se nao deu erro salva arquivo assinado { sArquivoOrigem:=trim(dm1.NotaARQUIVO.AsString); sCaminhoDestino:='E:\PEDIDOPELACONECTA '; sArquivoDestino:=trim(sCaminhoDestino)+'\'+sChaveCTE+'-cte.XML'; try // CopyFile(PChar(), PChar(NovaPasta), true); CopyFile(PChar(sArquivoOrigem), PChar(sArquivoDestino), true); except ShowMessage('Ocorreu um erro durante a cópia. Por favor, verifique o caminho'); end} end; if DM1.Nota.Eof then begin Acabou_CTRC:=false; end; end;
-
Ok. Obrigado pelas informações Ítalo. Vou testar no meu sistema. Abraços.