Foros del Web » Programando para Internet » ASP Clásico »

Reportes solo en ASP

Estas en el tema de Reportes solo en ASP en el foro de ASP Clásico en Foros del Web. HOla... Necesito armar reportes de imprecion de unas cuantas consultas de sql... y bueno... decidi hacerlo con reportes ya que mi primera opcion era Cristal ...
  #1 (permalink)  
Antiguo 17/06/2002, 14:34
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 23 años, 2 meses
Puntos: 2
Reportes solo en ASP

HOla...
Necesito armar reportes de imprecion de unas cuantas consultas de sql... y bueno... decidi hacerlo con reportes ya que mi primera opcion era Cristal Report + Asp... pero por cuestiones economicas tengo que resolverlo solo con ASP.. el tema es como armarlo para que me queden los reportes bien paginados... con encabezado.. bien presentadas... y de forma tal que si son 3000 registros lo que quiero imprimir... me imprima (por ejemplo) 20 por pagina...
tengo algunos tips de asp... pero considero de que me hacen falta unos cuantos mas!!!
Si alguin tiene experiencia en este tipo de cosas de asp... (o que simplemente ya lo halla intentado) le pido que me de una ayudaaaaa!!!! gracias de antemano!
  #2 (permalink)  
Antiguo 22/08/2003, 08:49
 
Fecha de Ingreso: junio-2003
Ubicación: Buenos Aires Capital
Mensajes: 29
Antigüedad: 21 años, 10 meses
Puntos: 0
Hola te puedo preguntar si pudistes solucionar esto, a mi me pasa lo mismo y necesitaria saber si encontraste algun componente u objeto que sea free, o algo interesante.
Si llegastes a conseguir la forma te pediria que me avises.
Saludos
Ariel.-
  #3 (permalink)  
Antiguo 23/08/2003, 09:42
 
Fecha de Ingreso: febrero-2003
Mensajes: 76
Antigüedad: 22 años, 2 meses
Puntos: 0
amigo yo tenia la misma duda tienes que tener el crystalreport instalado te envio el codigo mañana cuando navegue de nuevo es una instruccion sencilla
__________________
Netfiles
  #4 (permalink)  
Antiguo 24/08/2003, 19:59
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 23 años, 2 meses
Puntos: 2
Hola... Si instalas el Cristal report en un Servidor... vas a tener que pagar la licencia... a menos que lo quieras hacer de forma "Ilegal". La licencia es bastante cara!

Yo lo resolvi todo desde ASP.... a pleno.!
si te interesa te puedo pasar una pagina de ejemplo... solo tendras que darme algo de tiempo para buscarla!...

Bueno... un abrazo amigos!
__________________
tech-nico.com
  #5 (permalink)  
Antiguo 24/08/2003, 21:17
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Hola OXIGENO. Estaría bueno que la muestres aquí mismo... en el foro.

saludos
__________________
...___...
  #6 (permalink)  
Antiguo 27/08/2003, 13:58
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 23 años, 2 meses
Puntos: 2
Hola... aqui va el codigo que arme para Imprimir algo asi como lo mas parecido a un reporte......

En resumen lo que hago es.... desde una pagina listo una tabla resultante de yna consulta de SQL. A esa tabla, el usuario la puede ordenar como quiera...... Cuendo el usuario presiona en el boton <Imprimir>; llamo una pagina que imprime, pasandole los datos de la consulta mediante URL Dinamica(querystring); como por ejemplo el orden de la tabla(para imprimir en el mismo orden)

#### PRIMERO LA PAGINA QUE IMPRIME #### (supongamos que se llama PRINT.asp)



Código:
<!--#include file="../../Templates/include/head.asp" -->
<% 'Abajo pongo el head.asp
'##############################################################
'## Consulta 2 - Nomina de Afiliados. Filtrado por Localidad y
'## por el Estado del Afiliado (="S")
'## Utilidad: 1) Mostrar nomina de Afiliados por Localidad
'##############################################################
server.ScriptTimeout = 1800

Dim mostrar       		'cantidad de registros a mostrar por página
Dim cant_paginas      	'cantidad de páginas que recibimos
Dim pagina_actual     	'La página que mostramos
Dim registro_mostrado   'Contador utilizado para mostrar las páginas
Dim I        			'Variable Loop

mostrar = 30 			'Pueden modificar este número para cambiar la cantidad de registros por página

'En que pagina estoy...
'If Request.Querystring("page") = "" Then
'	pagina_actual = 1
'Else
'	pagina_actual = CInt(Request.Querystring("page"))
'End If
	
Dim strSQL, objRS, paso
paso = 1
'Traigo orden en que ordeno el usuario en la pagina anterior
order = Request.Querystring("order")

'Si no tiene orden, por default 1
If Len(order) = 0 Then order = 1

If paso = 1 Then
				
	Set objRS = Server.CreateObject("ADODB.Recordset")
	strSQL = "SELECT a.numero, a.nombre, a.documento, a.cuil, a.domicilio, a.telefono, a.codigo, d.localidad"
	strSQL = strSQL & " FROM afili a INNER JOIN dat_post d ON a.codigo = d.codigo"
	strSQL = strSQL & " WHERE a.codigo='" & Session("cp") & "' and a.numero <> -1 and a.numero <> -2 and a.estado= 'S'"
	strSQL = strSQL & " ORDER BY " & order
	objRS.PageSize = mostrar
	objRS.CacheSize = mostrar
	objRS.Open strSQL, OpenConnection, 3, 1
	If Not objRS.EOF Then loc = objRS("localidad")
	
End If
%>
<html>
<head>
<title>Nómina de Afiliados de <%=request.querystring("loc")%></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" onLoad="MM_callJS('javascript:print()');MM_callJS('javascript:history.back(-1)')">
<div align="left"> 
  <p align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
    <% 
if paso=1 then
	'contamos las páginas que se formaron con la variable mostrar.
	cant_paginas = objRS.PageCount
	' Si el pedido de página cae afuera del rango,
	' lo modificamos para que caiga adentro
	If pagina_actual > cant_paginas Then pagina_actual = cant_paginas
	If pagina_actual < 1 Then pagina_actual = 1

	' Si la cantidad de páginas da 0 es que no hay registros... por eso este IF
	If cant_paginas = 0 Then
		Response.Write "No hay Registros..."
	Else
		' Nos movemos a la página elegida
		objRS.AbsolutePage = pagina_actual
		' Mostramos el dato de que página estamos... %>
    </font></p>
</div>
<% do while pagina_actual <= cant_paginas And Not objRS.EOF
  	  registro_mostrado = 0 %>
<br>
<table width="96%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td valign="middle" align="center"> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;</font> 
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><img src="../../images/inside_r8_c10.gif" width="323" height="67" align="top"></font></p>
      <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>N&oacute;mina 
        de Afiliados de <%=request.querystring("loc")%></strong></font></p></td>
  </tr>
</table>
<br>
<table border=1 width="624" cellpadding="0" cellspacing="0" align="center">
  <tr> 
    <th width="51"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Numero</font></th>
    <th width="190"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Nombre</font></th>
    <th width="79"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Documento</font></th>
    <th width="100"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Cuil</font></th>
    <th width="192"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Domicilio</font></th>
  </tr>
  <% registro_mostrado = 0
      Do While registro_mostrado < mostrar And Not objRS.EOF %>
  <tr> 
    <td width="51" height="9"> <div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
        <% =objRS("numero") %>
        &nbsp;</font></div></td>
    <td width="190" height="9"> <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;
        <% Trim2 objRS("nombre"), 24,24 %>
        </font></div></td>
    <td width="79" height="9"> <div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
        <% =objRS("documento") %>
        &nbsp;</font></div></td>
    <td width="100" height="9"> <div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">
        <% WriteCuil(objRS("cuil")) %>
        &nbsp;</font></div></td>
    <td width="192" height="9"> <div align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;
        <% trim2 objRS("domicilio"), 24, 24 %>
        </font></div></td>
  </tr>
  <% ' Sumamos 1 a los mostrados
			registro_mostrado = registro_mostrado + 1
		    objRS.movenext
			response.flush 
		    loop %>
</table>
<table width="624" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> 
    <td width="73%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">N&oacute;mina 
      de Afiliados de <%=request.querystring("loc")%> ordenado por <b> 
      <% 
if order=1 then
	response.write "Numero" 
elseif order=2 then
	response.write "Nombre" 
elseif order=3 then
	response.write "Documento" 
elseif order=4 then
	response.write "Cuil" 
elseif order=5 then
	response.write "Domicilio" 
end if %>
      </b></font></td>
    <td width="27%"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Página<b> 
        <%= pagina_actual %></b> de<b> <%= cant_paginas %></b></font></div></td>
  </tr>
</table>
<%	'##########  Estos espacios crean el salto de pagina.
	'##########  pero dependen de la marca de la impresora.
	'##########  En mi caso es una impresora Epson 400.
	response.write("<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>")
	'##########  (habia hecho el salto de pagina con javascript pero no hubo caso....!!  No andaba!!... Si ustedes encuentran la solucion a este problema con JS haganmelo saber.. jijiji)
	pagina_actual = pagina_actual + 1
Response.Flush()
	loop %>
<br>
</body>
</html>
#### Head.asp ####

Código:
<% Response.Buffer = True %>

<%
'##############################################################
'## Funciones Publicas 
'## Utilidad: 1) Manejo de Conexion
'##############################################################

'Conexion publica 
Dim objConn
 
'Devuelve una conexion abierta con DSN
Function OpenConnection()
	Set objConn = Server.CreateObject("ADODB.Connection")
	objConn.Open "DSN=sistemB;UID=SA;PWD="
	Set OpenConnection = objConn
End Function

'Cierra la conexion, SI esta ABIERTA.
Sub CloseConnection()
	If Not objConn Is Nothing Then
		objConn.Close
		Set objConn = Nothing
	End If
End Sub

'Da formato al CUIL y lo escribe...
Sub WriteCuil(cuil)
	If IsValid(cuil) Then
		p1 = Left(CStr(cuil),2)
		p2 = Right(CStr(cuil),9)
		p3 = Left(p2,8)
		p4 = Right(p2,1)
		Response.Write p1 : Response.Write "-" : Response.Write p3 : Response.Write "/" : Response.Write p4
	Else
		Response.Write(" ")
	End If
End Sub

Sub Trim2(str, i, r)
	If Len(Trim(str)) >= i Then
		Response.Write Left(str, r) & "..."
	Else
		Response.Write(str)
	End If
End Sub

'Chequea si el CUIT pasado es VALIDO 
Function IsValid(cuit)
	If Not IsNull(cuit) And Len(cuit) > 1 Then
		IsValid = True
	Else
		IsValid = False
	End If
End Function
%>

Estudienlo!!! ... espero que sirva !
Cualquier cosa pregunten.!
__________________
tech-nico.com
  #7 (permalink)  
Antiguo 01/09/2003, 09:41
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 23 años, 3 meses
Puntos: 4
Hola, para manejar bien el tema de salto de pagina creo que puede usar esto:

En el Head:

Código:
<STYLE>
H1.SaltoDePagina {
	PAGE-BREAK-AFTER: always
}
</STYLE>
y donde se debe indicar el salto de pagina:

Código:
<H1 class=SaltoDePagina></h1>
Espero les sea util y eficiente.
__________________
Holden-@r
http://www.hvaldez.com.ar
  #8 (permalink)  
Antiguo 01/09/2003, 14:19
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 23 años, 2 meses
Puntos: 2
Gracias Holden!
Es muy buen TIP!
__________________
tech-nico.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:37.