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

Ejecutar Crystal Report desde distintas bases de datos

Estas en el tema de Ejecutar Crystal Report desde distintas bases de datos en el foro de ASP Clásico en Foros del Web. Hola Mi problema es el siguiente: Tengo un aplicación en ASP, que se conecta a una base de datos en SQL 2005. Cada cliente que ...
  #1 (permalink)  
Antiguo 13/05/2008, 02:03
bec
 
Fecha de Ingreso: julio-2007
Mensajes: 4
Antigüedad: 16 años, 9 meses
Puntos: 0
Ejecutar Crystal Report desde distintas bases de datos

Hola

Mi problema es el siguiente: Tengo un aplicación en ASP, que se conecta a una base de datos en SQL 2005. Cada cliente que se conecta a la aplicación tiene su propia base de datos.

Para los informes utilizo Crystal Report XI

He realizado el informe en crystal, con una conexion OLE DB por que con el Native Client no me lo permite, tomando como referencia una base de datos ya que la estructura en todas las bases es igual.

Cuando entro en la aplicación con el cliente que he tomado como referencia el informe se ve correctamente, pero si utilizo otro cliente me ocurren dos cosas, o bien me salen siempre los datos del que he tomado la referencia o el informe sale en blanco(esto supongo que sera problema de perdida de sesiones).

El código que utilizo para lanzar el informe es:
<%
reportname = "prueba.rpt"
%>
<!-- #include file="AlwaysRequiredSteps.asp" -->
<%

session("oRpt").MorePrintEngineErrorMessages = False
session("oRpt").EnableParameterPrompting = False

usuario = (el usuario de la BBDD)
pass = (el password de la BBDD)
base =(el id que hace referencia a la BBDD del cliente)

Set mainReportTableCollection = Session("oRpt").Database.Tables

For Each Table in mainReportTableCollection
Table.SetLogonInfo "Servidor", CStr(base), CStr(usuario), CStr(pass)
Next

%>
<!-- #include file="MoreRequiredSteps.asp" -->
<!-- #include file="SmartViewerActiveX.asp" -->

No se puede utilizar el mismo informe para distintas BBDD, si estas tienen la misma estructura, y estan en el mismo servidor?

Un saludo
  #2 (permalink)  
Antiguo 13/05/2008, 11:52
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 6 meses
Puntos: 27
Re: Ejecutar Crystal Report desde distintas bases de datos

bueno

creo que tu pregunta esta mas asociada a Crystal Report que ha ASP dado que lo que necesitas hacer es modificar la base de datos que deseas acceder.

suizas mi recomendación podría ser. -- hablando en voz alta sin saber si funciona --

averigua como enviar la base de datos a CR y como configurar el reporte recibiendo ese parametro
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 13/05/2008, 14:30
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: Ejecutar Crystal Report desde distintas bases de datos

A ver si entendí ...

Tienes conexión a CR mediante OleDb (con ello, debes colocar el nombre de la BD en la cadena de conexión) y pruebas con un cliente y funciona OK, pero si cambias de cliente, ya no .... ¿es correcto?

Si usas OleDb, ¿acaso no cambias de BD en la cadena de conexión al cambiar de cliente -no hablemos de eso de usar una BD por cliente -?
  #4 (permalink)  
Antiguo 14/05/2008, 01:22
bec
 
Fecha de Ingreso: julio-2007
Mensajes: 4
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Ejecutar Crystal Report desde distintas bases de datos

Hola de nuevo

lo siento a ver si yo me explico mejor

Al diseñar el informe he utilizado una conexion contra una BD, utilizando el asistente del CR.

El informe se lanza desde una página ASP(utilizando el código que he puesto antes).

Lo que necesitaría es que mediante código ASP, pueda indicarle al informe que BD usar, por que siempre me guarda los datos de conexion con los que he diseñado el informe.

En resumen cómo cambiar dinámicamente la conexión del informe desde código
  #5 (permalink)  
Antiguo 14/05/2008, 07:06
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: Ejecutar Crystal Report desde distintas bases de datos

aaaaaaaaaaaaahhhhhhhhhhh, así ya me queda claro ...

En las respuestas anteriores hay códigos de como se hace, yo ahorita no tengo algún programa que haga eso ya que no uso CR hace ya algunos trabajos atras

Pero recordando más o menos como se hace encontré esto en Internet: http://p2p.wrox.com/topic.asp?TOPIC_ID=29466

Estos seguro te va a servir. Aunque adicionalmente a ese mensaje, es muy importante que siempre tengas a la mano para referencias los ejemplos que vienen con CR (o que bajas de su web). Si consultas el programa SimpleSetlogoonInfo.asp, verás lo siguiente:
Código:
==================================================================
'==================================================================
' WORKING WITH SETLOGONINFO
'
' The datasource here is called "Pubs Sample Database".  It is a System 
' Datasource (DSN), and points to the "pubs" database, which is installed
' with SQL Server. You will also need to change your user id and
' password.

'Create a reference to the tables collection of the main report
Set mainReportTableCollection = Session("oRpt").Database.Tables


For Each mnTable in mainReportTableCollection
  With mnTable.ConnectionProperties
   .Item("user ID") = "sa"
   .Item("Password") = "sa"
   .Item("DSN") = "Pubs Sample Database"
   .Item("Database") ="pubs"
  End With
Next
Saludos
  #6 (permalink)  
Antiguo 23/05/2008, 10:23
 
Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Respuesta: Ejecutar Crystal Report desde distintas bases de datos

hola a todos.

Bec. yo tambien tengo el mismo problema con la asignacion de la base de datos mediante codigo

utilizo el crystal report que viene con .NET 2005 tengo una aplicacion echa en vb.net la cual maneja una base de datos para cada empresa, las tablas y procesos almacenados son l@s mism@s la unica diferencia es que creo una bd con diferente nombre para cada empresa

en cuestion de cambiar la bd en los formularios no tengo ningun problema y problema esta en como dices los reportes de crystal me pasa lo mis que a ti.

e probado con diferentes variantes de codigo en los reportes y me pasa lo mismo que a ti

si te sirve de algo aunque lo eprobado y nada ... no cambia la bd ... pero si funciona para una bd definida en el diseño, espero que alguien pueda ayudarnos con esto ya que eh probado una y otra ves y no saleeeeeeeeeeeeeeeeee!!!!!

'========================================
Dim crReportDocument As New ReportDocument

crReportDocument.Load("C:\systema\reportes\reporte .rpt", OpenReportMethod.OpenReportByDefault)

crReportDocument.Database.Tables.Item(0).LogOnInfo .ConnectionInfo.ServerName = "SERVIDORX"
crReportDocument.Database.Tables.Item(0).LogOnInfo .ConnectionInfo.Password = "sa"
crReportDocument.Database.Tables.Item(0).LogOnInfo .ConnectionInfo.UserID = "sa"
crReportDocument.Database.Tables.Item(0).LogOnInfo .ConnectionInfo.DatabaseName = "BD1"

crReportDocument.SetParameterValue("@parametro1", "%en%")
crReportDocument.SetParameterValue("@parametro2", "12")

myCrystalReportViewer.ReportSource = crReportDocument
'========================================
  #7 (permalink)  
Antiguo 23/05/2008, 11:18
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Ejecutar Crystal Report desde distintas bases de datos

Este foro es de ASP 3.0 por lo que dudo recibas respuestas a tu problema, te recomiendo abras un tema en el foro de ASP.NET .

Saludos
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 16:51.