Para eso, vamos a llamar a nuestro informe utilizando el objeto automation XMLHTTP.
Gracias a el llamaremos al informe y obtendremos un stream con el resultado. Luego solamente se crea el archivo (Para que devuelva un PDF es necesario Como hemos comentado en otros posts renderizarlo en formato PDF añadiendo la opcion &Format=PDF).
También se podria hacer un fichero de excel simplemente cambiando en la url el &Format=PDF por &Format=Excel.
URL Automation 'Microsoft WinHTTP Services, version 5.1'.WinHttpRequest
XMLHTTP Automation 'Microsoft XML, v3.0'.XMLHTTP
Grabador Record Información empresa
btArchivoRecibido BigText
isArchivoRecibido InStream
osEscribeArchivoRecibido OutStream
vRespuesta Variant
//Creamos el objeto XMLHTTP para capturar el stream de la web
CREATE(XMLHTTP);
//Abrimos la WEB donde txtURL es la direccion de nuestro informe recordad que hay que poner el formato que queremos para renderizar
XMLHTTP.open('GET',txtURL,FALSE);//Abrimos la WEB donde txtURL es la direccion de nuestro informe recordad que hay que poner el formato que queremos para renderizar
XMLHTTP.setRequestHeader('Content-Type','application/pdf');
//Establecemos la conexion
XMLHTTP.send();
//Comprobamos el status de la conexion
IF (XMLHTTP.status = 200) THEN BEGIN
CLEAR(vRespuesta);
//Metemos en VRespuesta el resultado del informe
vRespuesta := XMLHTTP.responseStream;
//Generamos el archivo fisicamente en la direccion txtFichero
isArchivoRecibido := vRespuesta;
btArchivoRecibido.READ(isArchivoRecibido);
CLEAR(Grabador);
Grabador.DELETEALL;
Grabador.INIT;
Grabador.Imagen.CREATEOUTSTREAM(osEscribeArchivoRecibido);
btArchivoRecibido.WRITE(osEscribeArchivoRecibido);
//Grabamos el fichero en la direccion txtFichero
Grabador.Imagen.EXPORT(txtFichero,FALSE);
END;
En post sucesivos explicaremos como imprimir directamente el PDF generado desde Navision.
No hay comentarios:
Publicar un comentario