Exportar un informe de crystal a pdf

13/06/2006 - 11:55 por dutch | Informe spam
hola, soy nuevo en esto y me ha surgido un problema a la hora de exportar un informe de crystal

Uso el visual estudio 2003 y el crystal report que viene integrado en el para realizar el informe, el problema me surge cuando trabajo con un informe con parametros
El fallo que me da es el siguiente

CrystalDecisions.CrystalReports.Engine.ParameterFieldCurrentValueException: Falta el valor actual del campo de parámetro
Error de código fuente:

Línea 313: MemoryStream oStream; // using System.I
Línea 314:
Línea 315: oStream = (MemoryStream) <-
Línea 316: cr.ExportToStream
Línea 317: CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)


El codigo que utilizo es el siguiente

CrystalReportViewer1.DataBind()

//Comprobamos si se ha pasado el parámetr
if (Request.Form ["Parametro"] != null )

//Asignamos el parámetr
this.ReqPar = Request.Form ["Parametro"]
//Lo guardamos en la sesió
Session.Add("provincia", Request.Form ["Parametro"])
}
else

this.ReqPar = (string) Session["provincia"]


// Ejecuta la consulta a la base de dato
oracleDataAdapter1.Fill (dataSet11)

// Crea el report
this.cr = new CrystalReport4 ()


// Asocia el conjunto de datos con el report
cr.SetDataSource(dataSet11)

//Declara las variables para pasar los parametro
ParameterFields crParameterFields = new ParameterFields ()
ParameterField crParameterField = new ParameterField ()
ParameterDiscreteValue crDiscrete = new ParameterDiscreteValue ()

//Establece el nombre del campo del parametr
//Coincide con el nombre del parametro del inform
crParameterField.ParameterFieldName = "parametro2"

//Establece el valor discreto via post y lo pasamos al parametr
crDiscrete.Value = this.ReqPar
crParameterField.CurrentValues.Add (crDiscrete)

// Agrega el parámetro a la colección de campos de parámetros
// Solo utilizo un parametro en el inform
crParameterFields.Add (crParameterField)


// Establece la colección de campos de parámetros en el control del visor
// Solo utilizo un parametro en el inform
CrystalReportViewer1.ParameterFieldInfo = crParameterFields

// enlazo el data set al viso
CrystalReportViewer1.DataBind ()

// Asocia el reporte con el Visualizado
CrystalReportViewer1.ReportSource = cr




private void Button2_Click(object sender, System.EventArgs e

// EXPORTAR EL INFORM

MemoryStream oStream;

oStream = (MemoryStream
cr.ExportToStream
CrystalDecisions.Shared.ExportFormatType.PortableDocFormat)
Response.Clear()
Response.Buffer= true
Response.ContentType = "application/pdf"
Response.BinaryWrite(oStream.ToArray())
Response.End()

Si alguien pudiese decirme cual es el fallo se lo agradeceria enormemente

dutch

Ver este tema: http://www.softwaremix.net/viewtopic-523947.htm

Enviado desde http://www.softwaremix.net
 

Leer las respuestas

#1 Octavio Hernandez
13/06/2006 - 23:44 | Informe spam
Dutch,

Tu código parece bien.
Te recomendaría que probaras con el método SetParameterValue() de
reportDocument en lugar de toda esa "parafernalia" que se usaba en versiones
anteriores para trabajar con parámetros.

Slds - Octavio


"dutch" escribió en el mensaje
news:

hola, soy nuevo en esto y me ha surgido un problema a la hora de exportar
un informe de crystal.

Uso el visual estudio 2003 y el crystal report que viene integrado en el
para realizar el informe, el problema me surge cuando trabajo con un
informe con parametros.
El fallo que me da es el siguiente:

CrystalDecisions.CrystalReports.Engine.ParameterFieldCurrentValueException:
Falta el valor actual del campo de parámetro.
Error de código fuente:


Línea 313: MemoryStream oStream; // using System.IO
Línea 314:
Línea 315: oStream = (MemoryStream) <--
Línea 316: cr.ExportToStream(
Línea 317: CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);



El codigo que utilizo es el siguiente:

CrystalReportViewer1.DataBind();

//Comprobamos si se ha pasado el parámetro
if (Request.Form ["Parametro"] != null )
{
//Asignamos el parámetro
this.ReqPar = Request.Form ["Parametro"];
//Lo guardamos en la sesión
Session.Add("provincia", Request.Form ["Parametro"]);
}
else
{
this.ReqPar = (string) Session["provincia"];
}


// Ejecuta la consulta a la base de datos
oracleDataAdapter1.Fill (dataSet11);

// Crea el reporte
this.cr = new CrystalReport4 () ;


// Asocia el conjunto de datos con el reporte
cr.SetDataSource(dataSet11);

//Declara las variables para pasar los parametros
ParameterFields crParameterFields = new ParameterFields ();
ParameterField crParameterField = new ParameterField ();
ParameterDiscreteValue crDiscrete = new ParameterDiscreteValue ();

//Establece el nombre del campo del parametro
//Coincide con el nombre del parametro del informe
crParameterField.ParameterFieldName = "parametro2";

//Establece el valor discreto via post y lo pasamos al parametro
crDiscrete.Value = this.ReqPar;
crParameterField.CurrentValues.Add (crDiscrete);

// Agrega el parámetro a la colección de campos de parámetros.
// Solo utilizo un parametro en el informe
crParameterFields.Add (crParameterField);


// Establece la colección de campos de parámetros en el control del
visor.
// Solo utilizo un parametro en el informe
CrystalReportViewer1.ParameterFieldInfo = crParameterFields;

// enlazo el data set al visor
CrystalReportViewer1.DataBind ();

// Asocia el reporte con el Visualizador
CrystalReportViewer1.ReportSource = cr;
}



private void Button2_Click(object sender, System.EventArgs e)
{
// EXPORTAR EL INFORME

MemoryStream oStream;

oStream = (MemoryStream)
cr.ExportToStream(
CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
Response.Clear();
Response.Buffer= true;
Response.ContentType = "application/pdf";
Response.BinaryWrite(oStream.ToArray());
Response.End();

Si alguien pudiese decirme cual es el fallo se lo agradeceria enormemente.


dutch


Ver este tema: http://www.softwaremix.net/viewtopic-523947.html

Enviado desde http://www.softwaremix.net


Preguntas similares