Ir para conteúdo
  • Cadastre-se

dev botao

Imprimir DANFE via Rede com A3 porque parou com DanfeRaveCB?


Ver Solução Respondido por FLEXNET,
  • Este tópico foi criado há 4358 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Pessoal anteriormente imprimia a DANFE de outra maquina (rede) sem problemas com certificado A3, agora com atualização DanfeRAveCB tento imprimir a Danfe e aparece "Certificado Digital não Encontrado",o fato é que não estou tentando enviar a NF para SEFAZ, tão somente fazer um print ou preview da DANFE de outra maquina, isso funcionava agora parou com RaveCB.... ?????

Ricardo

Flexnet Sistemas

  • 2 semanas depois ...
Postado

Olá Regys, a função que eu uso antes de imprimir é a mesma do demo "LerConfiguracao" para carregar os paramentros de path etc.... não alterei nada, e agora com DanfeRaveCB não encontra o certificado..

 

Ini := TIniFile.Create( IniFile );
  try
      {$IFDEF ACBrNFeOpenSSL}
         edtCaminho.Text  := Ini.ReadString( 'Certificado','Caminho' ,'') ;
         edtSenha.Text    := Ini.ReadString( 'Certificado','Senha'   ,'') ;
         ACBrNFe1.Configuracoes.Certificados.Certificado  := edtCaminho.Text;
         ACBrNFe1.Configuracoes.Certificados.Senha        := edtSenha.Text;
     //    edtNumSerie.Visible := False;
    //     Label25.Visible := False;
    //     sbtnGetCert.Visible := False;
      {$ELSE}
         edtNumSerie.Text := Ini.ReadString( 'Certificado','NumSerie','') ;
         ACBrNFe1.Configuracoes.Certificados.NumeroSerie := edtNumSerie.Text;
         edtNumSerie.Text := ACBrNFe1.Configuracoes.Certificados.NumeroSerie;
    {   Label1.Caption := 'Informe o número de série do certificado'#13+
                           'Disponível no Internet Explorer no menu'#13+
                   %

Ricardo

Flexnet Sistemas

Postado

Olá Regys, segue código que chama a impressao:

 

procedure TFormNtFiscal.N3ImprimirDANFE1Click(Sender: TObject);
begin

  LerConfiguracao; //carrega os parametros .ini do componente acbr

 if TabGlobal.DNOTA_F.NFEID.Conteudo = '' then
  begin
    OpenDialog1.Title := 'Selecione a NFE';
    OpenDialog1.DefaultExt := '*-nfe.XML';
    OpenDialog1.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';
    OpenDialog1.InitialDir := ACBrNFe1.Configuracoes.Geral.PathSalvar;
  if OpenDialog1.Execute then
  begin
    AcbrNFe1.DANFE.TipoDANFE := tiRetrato;
    ACBRNFe1.DANFE.ImprimirDANFE(nil);
    ACBrNFe1.NotasFiscais.Clear;
  end;
 end
  else
    begin
     ACBrNFe1.NotasFiscais.LoadFromFile(ACBrNFe1.Configuracoes.Geral.PathSalvar+'\'+TabGlobal.DNOTA_F.NFEID.ValorString+'-nfe.xml');  //(OpenDialog1.FileName);
     AcbrNFe1.DANFE.TipoDANFE := tiRetrato;
     AcbrNfe1.DANFE.ImprimirDANFE(nil);
     ACBrNFe1.NotasFiscais.Clear;
   end;

end;

Ricardo

Flexnet Sistemas

Postado (editado)

Olá Regys, segue código que chama a impressao:

 

procedure TFormNtFiscal.N3ImprimirDANFE1Click(Sender: TObject);
begin

  LerConfiguracao; //carrega os parametros .ini do componente acbr

 if TabGlobal.DNOTA_F.NFEID.Conteudo = '' then
  begin
    OpenDialog1.Title := 'Selecione a NFE';
    OpenDialog1.DefaultExt := '*-nfe.XML';
    OpenDialog1.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';
    OpenDialog1.InitialDir := ACBrNFe1.Configuracoes.Geral.PathSalvar;
  if OpenDialog1.Execute then
  begin
    AcbrNFe1.DANFE.TipoDANFE := tiRetrato;
    ACBRNFe1.DANFE.ImprimirDANFE(nil);
    ACBrNFe1.NotasFiscais.Clear;
  end;
 end
  else
    begin
     ACBrNFe1.NotasFiscais.LoadFromFile(ACBrNFe1.Configuracoes.Geral.PathSalvar+'\'+TabGlobal.DNOTA_F.NFEID.ValorString+'-nfe.xml');  //(OpenDialog1.FileName);
     AcbrNFe1.DANFE.TipoDANFE := tiRetrato;
     AcbrNfe1.DANFE.ImprimirDANFE(nil);
     ACBrNFe1.NotasFiscais.Clear;
   end;

end;

 

Ricardo , se me permite uma dica :

 

1 - Essa rotina LerConfiguracao dos parametros do seu ini ou banco de dados , coloque-a no OnShow do formulario onde encontra-se o ACBrNFe , porque seu aplicativo a cada impressão de danfe faz chamadas todas as vezes que se imprime um Danfe duplicando a rotina desnecessariamente , essa rotina é carregada nescessariamente somente uma vez ao componente quando o aplicativo ou formulario se inicia !

 

2 - Não atualizei meus fontes por esses dias , vc usa Capicom ? se sim , tenta assim para ver se resolve o problema do Certificado :

 

    ACBrNFe1.Configuracoes.Certificados.NumeroSerie := edtNumSerie.Text;

    ACBrNFe1.Configuracoes.Certificados.GetCertificado ;

 

...acredito que os caras não mudaram isso , se não resolver , veja se o Certificado aparece na guia Pessoal de Conteudo do Internet Explorer !

 

Editado por marcelo_sp
Postado (editado)

Marcelo, obrigado pela dica, a função LerConfiguração, eu uso na abertura do form mesmo, eu coloquei aqui para ilustrar que mesmo carregando os dados ocorre erro, o codigo sugerido abaixo, eu ja uso em lerconfiguracao,

 

    ACBrNFe1.Configuracoes.Certificados.NumeroSerie := edtNumSerie.Text;

    ACBrNFe1.Configuracoes.Certificados.GetCertificado ;

 

 

Em relação ao Certificado aparecer no IE, não aparece pois o certificado A3 esta instalado em outra maquina, estou tentando imprimir por outra estação na rede, antes esta blz... agora esta dando este "B.O" com danfe RaveCB.

 

  Existe uma função nova que testa a validade do certificado (vencimento) vou tentar tirar isso em LerConfiguração, e ver se resolve, não estou na empresa agora, se der certo eu posto o resultado.

Editado por FLEXNET

Ricardo

Flexnet Sistemas

  • Solution
Postado

Retirei o codigo abaixo em LerConfiguracao e resolveu o problema..   

 

  {
  with ACBRNfe1.Configuracoes do
   begin
      Certificado := Certificados.GetCertificado;
      Vencto_Cer  := Certificados.DataVenc;

       if  (Date + 45) > Vencto_Cer then
       lbAlerta.Caption :='ALERTA: Seu Certificado Digital vence dia '+DateToStr(Vencto_Cer)+ ', renove-o mais breve possível.'

   end;
   }

Ricardo

Flexnet Sistemas

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.