PDA

Ver la Versión Completa : Error FastReport en cgi


marto
30-09-2003, 14:32:49
Hola a todos,

Estoy intentando generar ficheros pdf desde web. Para ello la idea es generar un informe con FastReport, exportarlo a pdf y servir el pdf al navegador. El código para hacer esto és:

procedure GeneraPdf;
var
t: TPsfrPDFExport;
begin
t := TPsfrPDFExport.Create(Self);
try
with frReport1 do
begin
ShowPrintDialog := false;
ShowProgress := false;
PrepareReport;
end;
t.ShowDialog := false;
frReport1.ExportTo(t, NomPdf);
//NomPdf es un String con el nombre del fichero
finally
t.Free;
end;
end;


En la TWebAction llamo a la función y redirecciono al pdf.

Si llamo al exe desde la consola (es un cgi, pero con un wincgi pasa lo mismo) funciona perfectamente, pero si lo ejecuto a través del servidor web, windows lanza un error (en el lado del servidor, claro) diciendo "unsuported format FRF".
Digo que es windows ya que todo el cgi se ejecuta en un bloque try except, en caso de saltar una excepción, devuelvo el mensaje en forma de HTML. Pues bien, windows saca ese mensaje y el cgi se queda bloqueado hasta que aceptas el mensaje. Cuando lo aceptas el programa levanta otra excepción (esta vez sí es el cgi, y el mensaje aparece en el HTML devuelto) con el texto "no printer currently selected".
He leído por ahí que la versión 2.5 de FR (la que yo uso) da un error si no hay impresora por defecto, pero es que el servidor sí tiene una impresora instalada.
Bueno, esto es todo, a ver si alguien me echa un cable porque necesito generar esos pdf's con urgencia y los informes ya los tengo hechos en FR.

guillotmarc
30-09-2003, 15:39:02
Hola.

Es solo una idea, pero podria ser que si el servicio servidor IIS se está ejecutando en LocalSystem, tenga un perfil distinto al que ves en el escritorio, y no tenga impresoras definidas (la mania de Windows de tener distintas configuraciones de impresoras para cada usuario).

Prueba a poner el Servicio que arranque con las credenciales del usuario Administrador (el cual tiene seguro impresora).

Saludos.

marto
30-09-2003, 18:49:48
La idea era buena, Marc. Pero he comprobado que lo que "había leído por ahí" no es cierto, ya que he montado el cgi en otra máquina sin impresora y ha funcionado a la perfección. En la máquina que corre bien el servidor se ejecuta también como LocalSystem, así que no tengo ni pajolera idea, pero algo está mal o en mi servidor o en mi Windows, pero después de reinstalar varias verces el servidor web no sé qué más probar. Por cierto, el servido es un WebSite Profesional 2.5