carlos_tedex Postado 21 Fevereiro Postado 21 Fevereiro 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!
Moderadores Juliomar Marchetti Postado 22 Fevereiro Moderadores Postado 22 Fevereiro Creio que não pois o navegador sempre faz cache de algo em disco pra renderizar na tela. 1 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
carlos_tedex Postado 22 Fevereiro Autor Postado 22 Fevereiro 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.
Moderadores Juliomar Marchetti Postado 22 Fevereiro Moderadores Postado 22 Fevereiro Uma sugestão é tentar carregar em stream e mandar para o webbrowser ou edge embutido em sua aplicação pode ser que funcione 1 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Membros Pro valterpatrick Postado 24 Fevereiro Membros Pro Postado 24 Fevereiro 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. 1 Valter Patrick Gerente de Projetos na empresa CTEC (33)98400-0936 GitHub: https://github.com/valterpatrick
carlos_tedex Postado 25 Fevereiro Autor Postado 25 Fevereiro 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!
Moderadores Juliomar Marchetti Postado 25 Fevereiro Moderadores Postado 25 Fevereiro 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 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
carlos_tedex Postado 25 Fevereiro Autor Postado 25 Fevereiro 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
carlos_tedex Postado 28 Fevereiro Autor Postado 28 Fevereiro 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;
Moderadores Juliomar Marchetti Postado 28 Fevereiro Moderadores Postado 28 Fevereiro Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Recommended Posts