Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Como tenho o logo do cliente e da prefeitura salvos no banco, preciso carregá-los usando stream. No DANFE da NF-e é possível carregar o logo a partir do stream. Fiz a seguinte alteração, caso o arquivo não exista, será feito o carregamento através do stream. Alteração feita para os relatórios do QuickReport e FortesRpeport, seguem arquivos em anexo.

 

Tem como liberar essas alterações nos fontes ?
Fiz a alteração seguindo de modelo implementado no DANFE do Rave.

ACBrNFSeDANFSeQRRetrato.pas

ACBrNFSeDANFSeRLRetrato.pas

  • Consultores
Postado

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Membros Pro
Postado (editado)
Bom dia,
 
Depois que atualizei a versão começou a dar um erro na DANFSe, comentei a alteração e deixei como esta antes e deu certo, acho que teria que testar se a stream é um tipo válido para não gerar uma exceção.
 
O teste que fiz foi colocando um caminho de arquivo que não existia, dai gerou uma exceção.
 
 if (FPrestLogo <> '') and FilesExists(FPrestLogo) then
 begin
   rliPrestLogo.Picture.LoadFromFile(FPrestLogo);
 end;


 // Alterado por Augusto Fontana - 18/09/2013
{ if (FPrestLogo <> '') then
   begin
     if FilesExists(FPrestLogo) then
       rliPrestLogo.Picture.LoadFromFile(FPrestLogo)
     else
       begin
         vStringStream := TStringStream.Create(FPrestLogo);
         try
           rliPrestLogo.Picture.Bitmap.LoadFromStream(vStringStream);
         finally
           vStringStream.Free;
         end;
       end;
   end;
}

post-227-0-00764800-1380898688.png

Editado por marciotga

Atenciosamente,

Márcio Lopes

Analista de Sistemas

Postado (editado)

Como faço para carrega a logo de uma stream ?

var
  vLogo: TStringStream;
begin
  vLogo := TStringStream.Create('');
  try
    // Logotipo da prefeitura
    vLogo.WriteString(FieldByName('logoprefeitura').AsString);
    ACBrNFSe.Danfse.Logo := vLogo.DataString;
    // Logotipo do prestador
    vLogo.Clear;
    vLogo.WriteString(FieldByName('logocliente').AsString);
    ACBrNFSe.Danfse.PrestLogo := vLogo.DataString;
  finally
    FreeAndNil(vLogo);
  end;

Assumindo que vc já tenha os logos salvos em um campo Blob no banco de dados, eu faço como apresentado acima.

Editado por Augusto Fontana
Postado

Com relação ao erro na geração da DANFSE, a princípio não vejo o que pode ser melhorado. Não conheço uma forma para identificar se o stream é válido ou não. A alteração que fiz segue o padrão do ACBr já implementado para o DANFE do Rave.

 

Para evitar que a DANFSE não seja gerada, caso tenha um contéudo inválido setado nos Logos, adicionei um try except para o carregamento. Segue anexo os arquivos alterados.

ACBrNFSeDANFSeQRRetrato.pas

ACBrNFSeDANFSeRLRetrato.pas

  • 9 meses depois ...
  • Este tópico foi criado há 3791 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.