En ese segundo punto, el de exportar los ficheros, modifiqué el código de forma que primero se crea el informe en la carpeta temporal y luego se debería copiar en la que se gaurdan todos los informes. He modificado el código dejándolo así:
El fichero en que inicialmente se guarda lo monto así:
Código PHP:
cInforme = AnsiString(getenv("TEMP")) + "\\" + UpperCase(Informe->ReportTitle + Now().FormatString("_hhnnss") + cExtInf[Destino - 2]);
De esta manera le informe se genera en el propio equipo en la carpeta temporal. Luego lo muevo a su destino real así:
Código PHP:
if (MoveFileEx(cInforme.c_str(), (AnsiString(cEntorno) + "Informes\\" + ExtractFileName(cInforme)).c_str(), MOVEFILE_REPLACE_EXISTING) == 0)
throw("");
Evidentemente, como está puesto al principio, están los correspondientes
try...catch. Pues tampoco funciona; por eso digo que ahora sí que puede ser un problema de permisos.