He estado tratando de hacer que esto funcione por un tiempo, y todo el código de ejemplo que he visto no está haciendo exactamente lo que estoy haciendo.Pasando los parámetros a los informes de cristal en C#
Tengo un programa que devuelve un pdf de un informe al que paso una tabla de datos. Esto funciona bien, excepto que me gustaría pasarle un par de otros parámetros (el rango de fechas de la tabla, estadísticas, etc.) y simplemente no puedo hacer que funcione. Mi código básicamente se ve así.
ReportDocument myDataReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
myDataReport.Load(@"C:\Layouts\Report.rpt");
ParameterField myParam = new ParameterField();
ParameterDiscreteValue myDiscreteValue = new ParameterDiscreteValue();
myParam.ParameterFieldName = "MyParameter";
myDiscreteValue.Value = "Hello";
myParam.CurrentValues.Add(myDiscreteValue);
myDataReport.ParameterFields.Add(myParam);
myDataReport.SetDataSource(myDataTable);
Stream returnData = myDataReport.ExportToStream(PortableDocFormat);
myDataReport.Close();
return returnData;
He añadido el campo de parámetro en el documento rpt en cristal, tengo que cambiar nada en el archivo xsd en C#, o me estoy perdiendo algo completamente diferente?
Muchas gracias, Andy.
Sí eso fue todo! Creo que probé esa línea antes, pero tenía el origen de datos en el lugar equivocado como usted señaló. Funciona ahora, ¡gracias! –
@Andrew. ¿Podría decirme por favor dónde puso la llamada a dataSource? – Unlimited071
Ponga SetParameterValue DESPUÉS de la asignación del origen de datos – Apocatastasis