Foros del Web » Programando para Internet » ASPX (.net) »

Problema al cargar un rpt con parametros en ASP .NEt

Estas en el tema de Problema al cargar un rpt con parametros en ASP .NEt en el foro de ASPX (.net) en Foros del Web. Hola, tengo un visor de reportes en el cual cargo diferentes reportes segun seleccion, si selecciono algun reporte q no tiene parametros me lo muestra ...
  #1 (permalink)  
Antiguo 10/10/2005, 20:26
 
Fecha de Ingreso: febrero-2002
Mensajes: 9
Antigüedad: 22 años, 1 mes
Puntos: 0
Problema al cargar un rpt con parametros en ASP .NEt

Hola, tengo un visor de reportes en el cual cargo diferentes reportes segun seleccion, si selecciono algun reporte q no tiene parametros me lo muestra perfectamente, pero si el reporte tiene parametros y hace uso de store procedures me manda un fallo:

The report you requested requires further information. y me pide ingrese nuevamente los datos del logeo

o este otro fallo:
Query Engine Error: 'An internal error occurred. Please contact Crystal Decisions technical support.' Failed to open a rowset.

Mi codigo es el siguiente, espero alguien me pueda ayudar

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
string sRuta="";
TableLogOnInfo crTableLogOnInfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Database CRDatabase;
Tables crTables;
/*Toma listas de parametros*/

sRuta=this.Session["reporte"].ToString();
arParametros=(ArrayList) this.Session["arParametros"];
arValores=(ArrayList) this.Session["arValores"];
/*Asignacion de reporte*/
this.reportDocument1.Load(sRuta);
SetReportParameters(this.reportDocument1);
/*Asignacion de parametros*/
//System.Collections.IEnumerator myEnumerator = arParametros.GetEnumerator();
//System.Collections.IEnumerator myEnumerator2 = arValores.GetEnumerator();

// while ( myEnumerator.MoveNext() && myEnumerator2.MoveNext() )
// {
// this.reportDocument1.SetParameterValue(myEnumerato r.Current.ToString(),"'"+myEnumerator2.Current.ToS tring()+"'");
// }

//a cada tabla le indicas los parametros de conexion (logueo)
//para obtener permisos de acceso
// crConnectionInfo.ServerName = getRegistryKey("Server","172.16.0.117");//"172.16.0.117";
// crConnectionInfo.DatabaseName = getRegistryKey("db","Informador");//"Informador";
// crConnectionInfo.UserID = getRegistryKey("User","sa");//"sa";
// crConnectionInfo.Password = getRegistryKey("Pass","saei");//"saei";
// CRDatabase = reportDocument1.Database;
// crTables = CRDatabase.Tables;
// foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables)
// {
// crTableLogOnInfo = crTable.LogOnInfo;
// crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
// crTable.ApplyLogOnInfo(crTableLogOnInfo);
// }
// /*Asigna reporte al visor*/
// CrystalReportViewer1.ReportSource = reportDocument1;
//
// CrystalDecisions.Shared.TableLogOnInfo myLogin=CrystalReportViewer1.LogOnInfo[0];
// myLogin.ConnectionInfo.Password = getRegistryKey("Pass","saei");//"saei";
// myLogin.ConnectionInfo.UserID = getRegistryKey("User","sa");//"sa";
// myLogin.ConnectionInfo.DatabaseName=getRegistryKey ("db","Informador");//"Informador";
// myLogin.ConnectionInfo.ServerName=getRegistryKey(" Server","172.16.0.117");//"172.16.0.117";
//
// /*Remueve los parametros originales de logueo*/
// CrystalReportViewer1.LogOnInfo.RemoveAt(0);
//
// /*Asigna los nuevos parametros de logueo*/
// CrystalReportViewer1.LogOnInfo.Add(myLogin);
//crm
// crParameterFields = CrystalReportViewer1.ParameterFieldInfo;
// while ( myEnumerator.MoveNext() && myEnumerator2.MoveNext() )
// {
// crParameterField = crParameterFields[myEnumerator.Current.ToString()];
// crParameterValues = crParameterField.CurrentValues;
// crParameterDiscreteValue = new ParameterDiscreteValue();
// crParameterDiscreteValue.Value = myEnumerator2.Current.ToString();
// crParameterValues.Add(crParameterDiscreteValue);
// }
//
// CrystalReportViewer1.ParameterFieldInfo = crParameterFields;
//
//
//CrystalReportViewer1.RefreshReport();

// CrystalReportViewer1.DataBind();
// CrystalReportViewer1.BestFitPage=true;
//CrystalReportViewer1.so

crConnectionInfo.ServerName =getRegistryKey("Server","172.16.0.117");
crConnectionInfo.DatabaseName = getRegistryKey("db","Informador");
crConnectionInfo.UserID = getRegistryKey("User","sa");
crConnectionInfo.Password = getRegistryKey("Pass","saei");
crConnectionInfo.ServerName = getRegistryKey("Server","172.16.0.117");//"172.16.0.117";
CRDatabase = this.reportDocument1.Database;
crTables = CRDatabase.Tables;

foreach(CrystalDecisions.CrystalReports.Engine.Tab le crTable in crTables)
{
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
}

this.CrystalReportViewer1.ReportSource = this.reportDocument1;

}

private CrystalDecisions.CrystalReports.Engine.ParameterFi eldDefinition SetReportParameters(CrystalDecisions.CrystalReport s.Engine.ReportDocument MyReport)
{
//sets the parameter values for main report and sub reports if any
CrystalDecisions.CrystalReports.Engine.ParameterFi eldDefinition ParameterFieldDefinition;
CrystalDecisions.Shared.ParameterDiscreteValue ParameterDiscreteValue;
CrystalDecisions.Shared.ParameterValues ParameterValues;
int paramcount;
paramcount = this.arValores.Count;
ParameterFieldDefinition = null;

for (int i = 0; i < paramcount; i++)//have to put paramcount otherwise hard code it .works
{
ParameterFieldDefinition = MyReport.DataDefinition.ParameterFields[i];
ParameterValues = new CrystalDecisions.Shared.ParameterValues();
ParameterDiscreteValue = new CrystalDecisions.Shared.ParameterDiscreteValue();
ParameterDiscreteValue.Value = this.arValores[i];
ParameterValues.Add(ParameterDiscreteValue);
ParameterFieldDefinition.CurrentValues.Clear();
ParameterFieldDefinition.DefaultValues.Clear();
ParameterFieldDefinition.ApplyCurrentValues(Parame terValues);

}
return ParameterFieldDefinition;
}

Aqui deje el codigo de varias formas q he intentado, de hecho tambien con un codigo que aqui pusieron.

Y nada que me funciona, error de compilacion no marca pero no me muestra los reportes, estoy usando .Net 2003, framework 1.1, asp 1, y sql server 2000

Saludos y de antemano millones de gracias!
  #2 (permalink)  
Antiguo 11/10/2005, 11:39
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Lo mejor que puedes hacer es buscar el error que te manda en: http://support.businessobjects.com/search/

Saludos
PS. Cuando envíes código, indéntalo; no sé otros, pero para mi es horrible que no esté indentado.
__________________
Alex Concha
Buayacorp - Programación y Diseño
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 07:33.