Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Boa tarde,

Gostaria de saber se é possível abrir o arquivo XML da NFe que está armazenado em banco de dados direto no navegador padrão sem salva-lo antes em disco.

Estou utilizando o Delphi 10 com SQL Server.

Grato!

  • Consultores
Postado

Creio que não pois o navegador sempre faz cache de algo em disco pra renderizar na tela.

  • Curtir 1

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado
15 horas atrás, Juliomar Marchetti disse:

Creio que não pois o navegador sempre faz cache de algo em disco pra renderizar na tela.

Obrigado pelo retorno Juliomar.

Imaginei isso tb :)

Pode fechar o post. 🤝

 

  • Consultores
Postado

Uma sugestão é tentar carregar em stream e mandar para o webbrowser ou edge embutido em sua aplicação pode ser que funcione

  • Curtir 1

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado
Em 21/02/2025 at 15:35, carlos_tedex disse:

Boa tarde,

Gostaria de saber se é possível abrir o arquivo XML da NFe que está armazenado em banco de dados direto no navegador padrão sem salva-lo antes em disco.

Estou utilizando o Delphi 10 com SQL Server.

Grato!

Por que vc não quer salvar em disco?
Mesmo que seja em uma pasta temporária e um arquivo temporário?
Geralmente os navegadores abrem arquivos salvos no disco, mas abrir sem salvar no disco seria algo complicado, mas uma alternativa que eu posso te dar é você criar um TTrvwNFe e exibir.
image.png.cb3d59103a87d1cb0905b8ede74a750d.png

  • Curtir 1

Valter Patrick
Gerente de Projetos na empresa CTEC
Consultor ACBr
(33)98400-0936
GitHub: https://github.com/valterpatrick

Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Postado
Em 24/02/2025 at 09:14, valterpatrick disse:

Por que vc não quer salvar em disco?
Mesmo que seja em uma pasta temporária e um arquivo temporário?
Geralmente os navegadores abrem arquivos salvos no disco, mas abrir sem salvar no disco seria algo complicado, mas uma alternativa que eu posso te dar é você criar um TTrvwNFe e exibir.
 

Bom dia meu amigo,

O motivo de NÃO salvar em disco partiu do gerente da empresa... mas tem algo haver com uma migração que iram fazer para AWS.

Mas para esse caso de visualizar o XML vou salvar em disco mesmo na pasta TEMP.

E se realmente for necessário visualizar SEM salvar em disco eu tentarei usar via webbrowser ou edge como o @Juliomar Marchetti sugeriu ou usar um TreeView como vc sugeriu.

Grato pela atenção!

  • Consultores
Postado
6 minutos atrás, carlos_tedex disse:

se realmente for necessário visualizar SEM salvar em disco eu tentarei

Cria um TStream ou TMemoryStream

carrega o xml nela e veja pra carregar no browser. dai não terá nada em disco

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado
4 horas atrás, Juliomar Marchetti disse:

Cria um TStream ou TMemoryStream

carrega o xml nela e veja pra carregar no browser. dai não terá nada em disco

Assim que possível farei um teste meu amigo 🤝

Postado

Boa tarde, somente hoje pude fazer um teste... Usei o TWebBrowser mesmo.

Click do botão:

procedure Tform_principal.btn_view_xmlClick(Sender: TObject);
begin
  try
    FDQuery1.Close;
    FDQuery1.SQL.Text := 'SELECT ENT_XML FROM ENTRADA WHERE ENT_CODIGO = :ENT_CODIGO';
    FDQuery1.ParamByName('ENT_CODIGO').Value := edt_compra.Text;
    FDQuery1.Open;
    if FDQuery1.FieldByName('ENT_XML').AsString <> '' then
    begin
      form_preview_xml := Tform_preview_xml.Create(nil);
      try
        WBLoadHTML(form_preview_xml.WebBrowser1, FDQuery1.FieldByName('ENT_XML').AsString);
        form_preview_xml.ShowModal;
      finally
        form_preview_xml.Free;
      end;
    end;
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;
end;

 

Função auxiliar: WBLoadHTML

uses
SHDocVw, ActiveX;

procedure Tform_principal.WBLoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
   sl: TStringList;
   ms: TMemoryStream;
begin
   WebBrowser.Navigate('about:blank') ;
   while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
    Application.ProcessMessages;

   if Assigned(WebBrowser.Document) then
   begin
     sl := TStringList.Create;
     try
       ms := TMemoryStream.Create;
       try
         sl.Text := HTMLCode;
         sl.SaveToStream(ms) ;
         ms.Seek(0, 0) ;
         (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)) ;
       finally
         ms.Free;
       end;
     finally
       sl.Free;
     end;
   end;
end;

 

NFe_99.png.27a78ec0846b8a73549c00a3532f6d29.png

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 474 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...