Delphi + UNIGUI + Arquivo externo

Delphi

21/10/2014

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

Curtidas 0

Melhor post

Nirlan Fundao

Nirlan Fundao

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)
GOSTEI 3

Mais Respostas

Brunno Sena

Brunno Sena

21/10/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 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 ???
GOSTEI 0
Nirlan Fundao

Nirlan Fundao

21/10/2014

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.
GOSTEI 0
POSTAR