Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3324 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Boa tarde

Ao tentar enviar o email apresenta o seguinte erro: "List index out of bouds(0)"

Estou utilizando o  ACBrCte1.Conhecimentos.Items[0].EnviarEmail para o envio.

E o ACBrMail para configuração do Email.

No Demo esta apresentando o mesmo erro. Alguém poderia me ajudar?

  • Membros Pro
Postado

Segue o código como está sendo feito, logo após a configuração quando vai executar o EnviarEmail apresenta o erro.

      ACBrMail1.Host     := qrEmpresa.fieldbyname('nm_smtpemail').asstring;
      ACBrMail1.Port     := qrEmpresa.fieldbyname('nr_portaemail').asstring;
      ACBrMail1.Username := qrEmpresa.fieldbyname('nm_usuarioemail').asstring;
      ACBrMail1.Password := qrEmpresa.fieldbyname('nr_senhaemail').asstring;
      ACBrMail1.From     := qrEmpresa.fieldbyname('nm_usuarioemail').asstring;
      ACBrMail1.SetSSL   := (qrempresa.fieldbyname('tp_conexaoseguraemail').asinteger=1); // SSL - Conexão Segura
      ACBrMail1.SetTLS   := (qrempresa.fieldbyname('tp_conexaossltsl').asinteger=1); // Auto TLS
      ACBrMail1.ReadingConfirmation := False; //Pede confirmacao de leitura do email
      ACBrMail1.UseThread  := False;           //Aguarda Envio do Email(não usa thread)
      ACBrMail1.FromName   := Para;

      ACBrCTe1.Conhecimentos.Items[0].EnviarEmail( Para, 'Conhecimento de Transporte Eletrônico - '+ACBrCTe1.Conhecimentos.Items[0].CTe.inFCTe.ID,
                                                memo1.lines
                                                , True  // Enviar PDF junto
                                                , CC    // Lista com emails que serão enviado cópias - TStrings
                                                , nil); // Lista de anexos - TStrings

      showmessage('E-mail Enviado com Sucesso.');

  • Consultores
Postado

Boa tarde Werner,

Você criou a lista de e-mail que serão enviados com cópia?

(...)

                                           , True  // Enviar PDF junto
                                                , CC    // Lista com emails que serão enviado cópias - TStrings
                                                , nil); // Lista de anexos - TStrings

Se o e-mail será enviado para somente uma pessoa ou seja o tomador do serviço você passar como parâmetro o valor NIL.

                                           , True  // Enviar PDF junto
                                           , nil    // Lista com emails que serão enviado cópias - TStrings
                                           , nil); // Lista de anexos - TStrings

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Bom dia Italo,

Fiz um debug no meu sistema e esse erro apresenta na hora de executar o EnviarEmail, e o interessante é que o DEMO CTe também está apresentando o mesmo erro. O que pode ser?

  • Consultores
Postado

Boa tarde Werner,

Como lhe disse não basta saber que o erro ocorre no método EnviarEmail, é preciso debugar tudo o que o método executa para descobrir onde esta provocando o erro.

Coloque um break point na linha que é executado o método EnviarEmail, depois vai pressionando a tecla F7 para debugar o método.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado (editado)

Bom dia Italo

Já debuguei o meu código por várias vezes e não consegui identificar o erro pois estou fazendo conforme tenho no DEMO, e agora os meus teste estão sendo feito dentro do DEMO, como você me explica a ocorrência do erro também persistir no DEMO onde era para está funcionando normalmente. 

Editado por Werner_Marques
  • Consultores
Postado

Bom dia Werner,

Vamos separar as coisas: Componente de aplicação.

A sua aplicação ou o programa Demo podem estar OK, mas o componente pode estar com algum erro.

É por isso que sugeri colocar o break point e debugar o que o EnviarEmail faz para tentar encontrar onde esta a linha que gera o erro.

Por outro lado fiz uma comparação entre a rotina do ACBrCTe com a mesma do ACBrNFe, tinha algumas diferenças, agora elas estão iguais.

Favor atualizar os fontes e testar novamente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Atualizei os fontes e tentei rodar o sistema e apresentou como o seguinte erro no componente:

GravarStream(StreamCte);

[Error] ACBrCTeConhecimentos.pas(492): Incompatible types: 'TStringStream' and 'TMemoryStream'

  • Membros Pro
Postado

Bom dia Italo

Após a atualização dos fontes do ACBr está apresentando o seguinte error:

[Fatal Error] ACBrCTe.pas(49): Unit ACBrCTeDACTEClass was compiled with a different version of ACBrCTe.TACBrCTe

Já executei o Build All Projects.

  • Consultores
Postado

Boa tarde Werner,

Não tenho condições de compilar agora, pois aqui na empresa ainda uso os fontes do Trunk, somente em casa a noite vou poder verificar isso.

Mas acredito que pela mensagem de erro e pela unit deve ter haver com o DACTE em Fortes ou Fast Report.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Moderadores
Postado

Bom dia Italo

Após a atualização dos fontes do ACBr está apresentando o seguinte error:

[Fatal Error] ACBrCTe.pas(49): Unit ACBrCTeDACTEClass was compiled with a different version of ACBrCTe.TACBrCTe

Já executei o Build All Projects.

Boa tarde

bem simples você tem um arquivo em outro local diferente do .dcu que está usando!

feche seu delphi rode o instalador faça todo o procedimento e depois abra sua aplicação e compile vai funcionar!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Postado

Obrigado Juliomar deu certo esse procedimento, o sistema voltou a rodar.

Voltando ao erro do tópico, estou debugando o código depois de atualizado os fontes e verifiquei que o erro ocorre no momento em que está executando  EnviarEmail quando executa essa função do ACBrCTeConhecimentos.pas

function TConhecimentos.GetItem(Index: Integer) : Conhecimento;

begin

      Result := Conhecimento(inherited Items[Index]);

end;

Erro que apresenta:

"List index out of bouds (0)"

 

Alguém poderia me ajudar?

 

  • Moderadores
Postado

Werner, estou com o Trunk2 em produção emitindo CT-es normalmente, sem nenhum erro.

Poderia passar o exato momento no seu código fonte onde o erro de index é levantado?

Você não está tentando utilizar algum número de index que está fora da quantidade de CT-es que você adicionou ao componente? 

 

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
  • Membros Pro
Postado

Regys, primeiramente não estou com problema na emissão do CT-e e sim no Envio do XML por Email deles.

Já postei nesse tópico o exato momento onde ocorre o erro, e meu código fonte está similar ao código fonte do DEMO.(E vejo que no DEMO também ocorre esse problema).

O erro ocorre no momento em que está executando  EnviarEmail quando executa essa função do ACBrCTeConhecimentos.pas

function TConhecimentos.GetItem(Index: Integer) : Conhecimento;

begin

      Result := Conhecimento(inherited Items[Index]);

end;

Meu código Fonte:

 ACBrCTe1.Conhecimentos.Items[0].EnviarEmail( Para, 'Conhecimento de Transporte Eletrônico - '+ACBrCTe1.Conhecimentos.Items[0].CTe.inFCTe.ID,
                                                memo1.lines
                                                , True  // Enviar PDF junto
                                                , nil    // Lista com emails que serão enviado cópias - TStrings
                                                , nil); // Lista de anexos - TStrings

 

   

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.