www.rpvreport.com

Rpv Reports
Usando ASP para generar un reporte Rpv

Este ejemplo muestra cómo preparar un listado utilizando ASP y Rpv Reports.


Ejemplo creado por Carlos Urquizo - La Paz, Bolivia. curquizom@hotmail.com

Requerimientos mínimos:
Windows 98 -2000 ; IIS o PWD;
También funciona en plataforma NT SERVER 2000.

Crear la base de datos en la carpeta donde se alojara el script rpv.asp

Nombre de la base: base.mdb

Nombre de la tabla: usuarios  Campos Usuario, Nombre

Consiste en Generar el archivo pruebas.rpv utilizando el FSO de ASP,
almacenando en este una consulta hecha a una base de datos, una vez realizado ese proceso se procede al redirecionamiento mediante Response.redict al archivo generado (aleatoriamente) de esta manera procedera a la apertura del mismo utilizando el visor de RPV, el mismo que tiene que estar instalado en el cliente.

Descargue el ejemplo en formato ZIP (14 Kb!)

<%
'Creado por Carlos Urquizo La Paz Bolivia curquizom@hotmail.com

Function generadordeclaves(longituddeclave)
' Nota para los principientes : el simbolo "_" es el de continuación de linea
' Definicion del array
Dim numerodecaracteres
Dim salida
Dim char_array
char_array = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", _
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", _
"U", "V", "W", "X", "Y", "Z")

Randomize()
Do While Len(salida) < longituddeclave
salida = salida & char_array(Int(26 * Rnd()))
Loop
' establecemos el valor del resultado a devolver
generadordeclaves = salida
End Function


numerodecaracteres=8
archi=generadordeclaves(numerodecaracteres)&".rpv"


'Abrimos la conexion con la BD
Set conn = Server.CreateObject ("ADODB.Connection")
'aca se encuentra la cadena de conexion a sqlserver
'conn.Open "driver={SQL Server};server=sqlservername; database=; uid=c;pwd="

pat = Server.MapPath("./")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&pat&"\base.mdb;"

'hacemos la consulta
sql = "SELECT * from usuarios "
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3

'creamos el nombre del archivo
archivo= request.serverVariables("APPL_PHYSICAL_PATH") & archi

'conectamos con el FSO
set confile = createObject("scripting.filesystemobject")

'creamos el objeto TextStream
set fich = confile.CreateTextFile(archivo)

'mandamos la cabecera
fich.writeline("report_title=EJEMPLO EN ASP")
fich.writeline("Papersize=letter")
fich.writeline("orientation=2")
fich.writeline("spacing=250")
fich.writeline("$c1=1000")
fich.writeline("$c2=3400")
fich.writeline("[header]")
fich.writeline("{pic=rpvlogo.bmp,400,400,1400,1400}")
fich.writeline("{f=arial;s=8}")
fich.writeline("{pic=rpvlogo.bmp,400,400,1400,1400}")
fich.writeline("{\n;$c1} Page {12800;pag}")
fich.writeline("{s=16;\n;\n;2000;c=2;b=y} Aplicación de Ejemplo {spacing=350;\n}")
fich.writeline("{c=1;2000} Reporte de ejemplo en ASP (una línea por registro). {c=0;b=n;\n;\n;\n;\n}")
fich.writeline("{LINE=400,14000;\n}")
fich.writeline("{s=8;b=y;$c1} Nombre {$c2} usuario {b=n;spacing=375;\n}")
fich.writeline("{LINE=400,14000;\n}")
fich.writeline("[data]")

'imprimimos el cuerpo del reporte
do while Not rs.eof
fich.writeline("{t;$c1}"&Server.HTMLEncode(rs.Fields("nombre").Value)&"{t;$c2}"&Server.HTMLEncode(rs.Fields("usuario").Value)&"{t;\n}")
rs.MoveNext
loop

'cerramos la conexión a la base de datos
Conn.Close
set Conn = nothing

'cerramos el fichero
fich.close()

'reenviamos el archivo al navegador
response.redirect (archi)

'borra el archivo del servidor
Set fso = Server.CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Call fso.DeleteFile(Server.MapPath(archi), True)
Set fso = Nothing


'eso es todo amigos

%>

>> cerrar esta ventana