Ver Mensaje Individual
  #6  
Antiguo 13-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
El problema es viejo y conocido.

La variable de entorno temp en winXP excede de 32 caracteres, y ahí está el problema. Cuando quickReports necesita crear archivos temporales para mostrar un informe grande, solo maneja rutas de menos de 32 caracteres.

Edito: Creo que QR 4 ya corrige ese fallo. Al menos el QR que viene con delphi 6 sí está afectado, por ende, delphi 5 también.

Al inicio de tu aplicación, llama esta rutina que cambiará la variable de entorno TEMP y TMP para tu programa nada más.
Código Delphi [-]
procedure SetEnviroment();
begin
  ForceDirectories(AssertBackSlash(GetWinDir)+ 'TEMP\temp');
  if not SetEnvironmentVariable(PChar('TEMP'), PChar(AssertBackSlash(GetWinDir)+ 'TEMP\temp')) then
    Raise Exception.Create('No se ha podido crear el directorio temporal (TEMP) para los informes');

  ForceDirectories(AssertBackSlash(GetWinDir)+ 'TEMP\tmp');
  if not SetEnvironmentVariable(PChar('TMP'), PChar(AssertBackSlash(GetWinDir)+ 'TEMP\tmp')) then
    Raise Exception.Create('No se ha podido crear el directorio temporal (TMP) para los informes');

end;

Necesitas adaptarla:
AssertBackSlash pone la última barra en una carpeta, delphi tiene una rutina parecida.

GetWinDir es una función que devuelve la ruta de instalación de windows.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita