Problema al cargar un reporte con crystal report .net

31/03/2005 - 14:45 por romi_mag | Informe spam
Error:No se pudo cargar el informe.
Por favor, necesito ayuda sobre como cargar un reporte en una aplicacion
web, con c sharp.Alguno q poseea un ejemplo!!! Gracias.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
01/04/2005 - 09:17 | Informe spam
Hola,

La manera más simple es poner en un WebForm un control CrystalReportViewer,
y en el evento Load asignarle a la propiedad ReportSource de éste el nombre
del fichero RPT que contiene el informe. Si este es tu caso y tienes
problemas, lo más probable es que tengas problemas de permisos - hay que dar
permisos de acceso sobre el fichero de informe al usuario bajo cuya cuenta
se ejecuta la aplicación web.

Hay muchos ejemplos en la DeveloperZone (parte .NET) de
www.businessobjects.com.

Slds - Octavio

"romi_mag" escribió en el mensaje
news:
Error:No se pudo cargar el informe.
Por favor, necesito ayuda sobre como cargar un reporte en una aplicacion
web, con c sharp.Alguno q poseea un ejemplo!!! Gracias.
Respuesta Responder a este mensaje
#2 Sercova
01/04/2005 - 23:40 | Informe spam
Aprovecho esta discución para plantear que tengo un
problema que debe ser muy común para los que utilizamos
Crystal con .NET y se trata de parametrizar la conexión a
la base de datos, para que los datos que se muestren no
estén amarrados a la BD con la que se diseñó el RPT.

Adjunto código que no resultó, aunque se suponía que sí
debía hacerlo. (es un desarrollo web con C#)

POR VUESTRA ATENCIÓN GRACIAS:

public class VerInforme : System.Web.UI.Page
{
TableLogOnInfo crTableLogOnInfo = new
TableLogOnInfo();
ConnectionInfo crConnectionInfo = new
ConnectionInfo();

CrystalDecisions.CrystalReports.Engine.Tables
crTables;

private void Page_Load(object sender,
System.EventArgs e)
{
string reporte, ls_acum;
ReportDocument rd = new
ReportDocument();
rd.Load
("C:\\Inetpub\\wwwroot\\SIINInformes\\InfMayor.rpt");
this.MyParameterValues.Add
(Request["hdl"]);
this.MyParameterValues.Add
(Request["fecha"]);
this.MyParameterValues.Add
(Request["ctas"]);
this.MyParameterValues.Add
(Convert.ToInt32(Request["d"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["m"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["a"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["acum"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["todas"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["subctas"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["cierre"]));
SetReportParameters
(rd); // Más abajo está descrita la función

//Crea la conexion

crConnectionInfo.ServerName = "SERVIDOR";

crConnectionInfo.DatabaseName = "BD_Prueba";
crConnectionInfo.UserID
= "usuario";
crConnectionInfo.Password
= "contraseña";
crTables =
rd.Database.Tables;

foreach
(CrystalDecisions.CrystalReports.Engine.Table crTable in
crTables)
{
crTableLogOnInfo
= crTable.LogOnInfo;

crTableLogOnInfo.ConnectionInfo =
crConnectionInfo;

crTable.ApplyLogOnInfo(crTableLogOnInfo);
}


CrystalReportViewer1.ReportSource = rd;
}

protected
CrystalDecisions.CrystalReports.Engine.ParameterFieldDefin
ition SetReportParameters
(CrystalDecisions.CrystalReports.Engine.ReportDocument
MyReport)
{
//Definimos los objetos
necesarios para trabajar con los parametros

CrystalDecisions.CrystalReports.Engine.ParameterFi
eldDefinition ParameterFieldDefinition;

CrystalDecisions.Shared.ParameterDiscreteValue
ParameterDiscreteValue;

CrystalDecisions.Shared.ParameterValues
ParameterValues;
int paramcount;
//obtenemos el total de parametros

paramcount=MyParameterValues.Count;
ParameterFieldDefinition= null;

//se crea la definicion,y los
valores de cada uno de los parmetros
for (int i = 0; i < paramcount;
i++)
{
ParameterFieldDefinition
= MyReport.DataDefinition.ParameterFields[i];
ParameterValues = new
CrystalDecisions.Shared.ParameterValues();
ParameterDiscreteValue =
new CrystalDecisions.Shared.ParameterDiscreteValue();

ParameterDiscreteValue.Value =
this.MyParameterValues[i];
ParameterValues.Add
(ParameterDiscreteValue);

ParameterFieldDefinition.CurrentValues.Clear();

ParameterFieldDefinition.DefaultValues.Clear();

ParameterFieldDefinition.ApplyCurrentValues
(ParameterValues);

}
//devuelve la definicion de los
parametros
return ParameterFieldDefinition;

}


}

Hola,

La manera más simple es poner en un WebForm un control


CrystalReportViewer, ...
...
"romi_mag" escribió


en el mensaje
news:5854D5FD-0A99-4472-A04F-



Error:No se pudo cargar el informe.
Respuesta Responder a este mensaje
#3 Octavio Hernandez
02/04/2005 - 09:00 | Informe spam
Hola,

Es mucho más fácil que eso, la clase ReportDocument tiene un método
SetDatabaseLogon con 4 parámetros: servidor, base de datos, usuario y
contraseña. Con eso puedes cambiar de base de datos, incluso en otro
servidor...

Salu2 - Octavio

"Sercova" escribió en el mensaje
news:19a101c53703$709e76b0$
Aprovecho esta discución para plantear que tengo un
problema que debe ser muy común para los que utilizamos
Crystal con .NET y se trata de parametrizar la conexión a
la base de datos, para que los datos que se muestren no
estén amarrados a la BD con la que se diseñó el RPT.

Adjunto código que no resultó, aunque se suponía que sí
debía hacerlo. (es un desarrollo web con C#)

POR VUESTRA ATENCIÓN GRACIAS:

public class VerInforme : System.Web.UI.Page
{
TableLogOnInfo crTableLogOnInfo = new
TableLogOnInfo();
ConnectionInfo crConnectionInfo = new
ConnectionInfo();

CrystalDecisions.CrystalReports.Engine.Tables
crTables;

private void Page_Load(object sender,
System.EventArgs e)
{
string reporte, ls_acum;
ReportDocument rd = new
ReportDocument();
rd.Load
("C:\\Inetpub\\wwwroot\\SIINInformes\\InfMayor.rpt");
this.MyParameterValues.Add
(Request["hdl"]);
this.MyParameterValues.Add
(Request["fecha"]);
this.MyParameterValues.Add
(Request["ctas"]);
this.MyParameterValues.Add
(Convert.ToInt32(Request["d"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["m"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["a"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["acum"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["todas"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["subctas"]));
this.MyParameterValues.Add
(Convert.ToInt32(Request["cierre"]));
SetReportParameters
(rd); // Más abajo está descrita la función

//Crea la conexion

crConnectionInfo.ServerName = "SERVIDOR";

crConnectionInfo.DatabaseName = "BD_Prueba";
crConnectionInfo.UserID
= "usuario";
crConnectionInfo.Password
= "contraseña";
crTables rd.Database.Tables;

foreach
(CrystalDecisions.CrystalReports.Engine.Table crTable in
crTables)
{
crTableLogOnInfo
= crTable.LogOnInfo;

crTableLogOnInfo.ConnectionInfo crConnectionInfo;

crTable.ApplyLogOnInfo(crTableLogOnInfo);
}


CrystalReportViewer1.ReportSource = rd;
}

protected
CrystalDecisions.CrystalReports.Engine.ParameterFieldDefin
ition SetReportParameters
(CrystalDecisions.CrystalReports.Engine.ReportDocument
MyReport)
{
//Definimos los objetos
necesarios para trabajar con los parametros

CrystalDecisions.CrystalReports.Engine.ParameterFi
eldDefinition ParameterFieldDefinition;

CrystalDecisions.Shared.ParameterDiscreteValue
ParameterDiscreteValue;

CrystalDecisions.Shared.ParameterValues
ParameterValues;
int paramcount;
//obtenemos el total de parametros

paramcount=MyParameterValues.Count;
ParameterFieldDefinition= null;

//se crea la definicion,y los
valores de cada uno de los parmetros
for (int i = 0; i < paramcount;
i++)
{
ParameterFieldDefinition
= MyReport.DataDefinition.ParameterFields[i];
ParameterValues = new
CrystalDecisions.Shared.ParameterValues();
ParameterDiscreteValue new CrystalDecisions.Shared.ParameterDiscreteValue();

ParameterDiscreteValue.Value this.MyParameterValues[i];
ParameterValues.Add
(ParameterDiscreteValue);

ParameterFieldDefinition.CurrentValues.Clear();

ParameterFieldDefinition.DefaultValues.Clear();

ParameterFieldDefinition.ApplyCurrentValues
(ParameterValues);

}
//devuelve la definicion de los
parametros
return ParameterFieldDefinition;

}


}

Hola,

La manera más simple es poner en un WebForm un control


CrystalReportViewer, ...
...
"romi_mag" escribió


en el mensaje
news:5854D5FD-0A99-4472-A04F-



Error:No se pudo cargar el informe.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida