Delphi + UNIGUI + Arquivo externo

21/10/2014

0

Srs. tudo bem ?

Estou migrando uma aplicação para Web. Utilizo o Delphi 2010 + Firebird + UNIGUI, e me deparei com a seguinte situação.

Gero um relatório em excel. No http://localhost:8077 o arquivo me é gerado localmente, e tudo certo, mas ao passar pro servidor, e tentar acessar de qualquer maquina, quando pede para ser gerado o relatório, ele gera la dentro do servidor, e não localmente para a pessoa...

O autoCoInitialize, está habilitado.


O que posso fazer ???
Brunno Sena

Brunno Sena

Responder

Post mais votado

07/11/2014

Como o sistema roda no servidor, todos os arquivos são gerados no servidor. É necessário que após o arquivo gerado você faça o download do mesmo para o browser cliente.

Eu gero os relatórios em PDF através do report builder, conforme abaixo:

procedure TUniForm960.GeraArquivo;
var
vArqTemp : String;

begin
vArqTemp := 'report_' + IntToStr(DM.vNumUsuario) + '_' + FormatDateTime('ddmmyy_hhmmss', Now) + '.pdf';

try
if FileExists(UniServerModule.LocalCachePath + vArqTemp) then
DeleteFile(UniServerModule.LocalCachePath + vArqTemp);
except
end;

ppReport1.PrinterSetup.MarginTop := DM.vMargemSup;
ppReport1.PrinterSetup.DocumentName := Self.Caption;

ppReport1.AllowPrintToFile := True;
ppReport1.ShowPrintDialog := False;
ppReport1.DeviceType := dtPDF;
ppReport1.TextFileName := UniServerModule.LocalCachePath + vArqTemp;
ppReport1.Print;
DM.vPDF := UniServerModule.LocalCacheURL + '/' + vArqTemp;
end;


Depois utilizo um form com o componente uniFrame para visualizar o arquivo gerado:

UniURLFrame1.URL := DM.vPDF;


(DM.vPDF é uma variável pública que está no meu mainModule ( que é o data module do unigui)

Nirlan Fundao

Nirlan Fundao
Responder

Mais Posts

12/11/2014

Brunno Sena

Como o sistema roda no servidor, todos os arquivos são gerados no servidor. É necessário que após o arquivo gerado você faça o download do mesmo para o browser cliente.

Eu gero os relatórios em PDF através do report builder, conforme abaixo:

procedure TUniForm960.GeraArquivo;
var
vArqTemp : String;

begin
vArqTemp := 'report_' + IntToStr(DM.vNumUsuario) + '_' + FormatDateTime('ddmmyy_hhmmss', Now) + '.pdf';

try
if FileExists(UniServerModule.LocalCachePath + vArqTemp) then
DeleteFile(UniServerModule.LocalCachePath + vArqTemp);
except
end;

ppReport1.PrinterSetup.MarginTop := DM.vMargemSup;
ppReport1.PrinterSetup.DocumentName := Self.Caption;

ppReport1.AllowPrintToFile := True;
ppReport1.ShowPrintDialog := False;
ppReport1.DeviceType := dtPDF;
ppReport1.TextFileName := UniServerModule.LocalCachePath + vArqTemp;
ppReport1.Print;
DM.vPDF := UniServerModule.LocalCacheURL + '/' + vArqTemp;
end;


Depois utilizo um form com o componente uniFrame para visualizar o arquivo gerado:

UniURLFrame1.URL := DM.vPDF;


(DM.vPDF é uma variável pública que está no meu mainModule ( que é o data module do unigui)




Nirlan e Fundao

Obrigado amigo...

Fiz os testes, passando pro Excel... mas ocorreu que acredito que ele não abra o excel dentro do Frame, como posso fazer ???
Responder

30/01/2015

Nirlan Fundao

Eu não preciso utilizar o excel em meus sistemas. Mas acredito ter visto algo assim no fórum do unigui. Sugiro que você pesquise pelo termo "excel" no fórum do unigui que certamente irá encontrar uma solução.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar