jueves, agosto 21, 2014

Genexus - DownLoad desde campos Blob

Se tiene una tabla con archivos PDF almacenados en un campo blob, se requiere hacer la descarga desde estos campos blob.
 
Para el ejemplo se tiene la siguiente estructura de la tabla:
 
Nombre de la Tabla: reportespdf
   ReportesPdfSec                       N(5)    * Autonumerico
   ReportesPdfNombre               C(40)
   ReportesPdfArchivo               Blob;
 
Para ello es necesario crear un WebPanel con una grilla donde se despliegue los registros que contiene dicha tabla.
Seguidamente cada la fila de grilla permitirá hacer un link al procedimiento para descargar el archivo PDF.
 
En el Evento Load, debe tener lo siguiente:
Event Load
&DescargarPdf.Link = DESCARGASPDF.Link(ReportesPdfSec)
EndEvent

 
El procedimiento para descargar es el siguiente:
Setear sus propiedades:
     MAIN PROGRAM = TRUE
     CALL PROTOCOL = HTTP.
 
Crear las variables &HttpResponse, &ReportePdfSec 
 
Reglas:
parm(In: &ReportePdfSec);
 
Source: 
&HttpResponse.AddHeader(‘Content-type’, ‘application/download’)

// Leer Archivo de Reportes PDF 
For Each ReportesPdfSec 
       Where ReportesPdfSec = &ReportesPdfSec 
        Defined By  ReportesPdfNombre 
        &HttpResponse.AddHeader(‘Content-Disposition’, ‘attachment; filename=’ + ReportesPdfNombre)
&HttpResponse.AddFile(ReportesPdfArchivo)
EndFor
Return

3 comentarios:

Unknown dijo...

Gracias Genio!!!!

Unknown dijo...

funciona, gracias!!

Unknown dijo...

Mi estimado, consulta:
- &DescargarPdf que tipo de variable sería, o a que tipo esta referenciado?