Pregunta

Esto funcionó correctamente en Visual Studio 2008, pero dado que he cambiado a Visual Studio 2010 y Crystal Reports para Visual Studio 2010, se ignoran mis parámetros aprobados.

¡Se muestran en el informe, simplemente ignorados cuando se trata de la fórmula de selección! Aquí está mi código para crear el informe y pasar los parámetros.

 private void Prepare()
    {
        var reportDocument = new ReportDocument();

        string reportPath = string.Format(
            "{0}\\{1}",
            Globals.FormPath,
            this.FormTemplate.Filename);

        reportDocument.Load(reportPath);

        ParameterDiscreteValue parameter;

        foreach (var control in this.FormTemplateFieldControls)
        {
            switch (control.FormTemplateField.DataType)
            {
                case FormFieldDataType.Date:
                    this.AddParameterForDateTime(
                        reportDocument,
                        control.FormTemplateField.Name,
                        (DateTime)control.EditValue);
                    break;
                case FormFieldDataType.DateTime:
                    this.AddParameterForDateTime(
                        reportDocument,
                        control.FormTemplateField.Name,
                        (DateTime)control.EditValue);
                    break;
                case FormFieldDataType.Time:
                    this.AddParameterForDateTime(
                        reportDocument,
                        control.FormTemplateField.Name,
                        (DateTime)control.EditValue);
                    break;
                case FormFieldDataType.Guid:
                    this.AddParameterForGuid(
                        reportDocument,
                        control.FormTemplateField.Name,
                        (Guid)control.EditValue);
                    break;
                default:
                    this.AddParameterForString(
                        reportDocument,
                        control.FormTemplateField.Name,
                        control.EditValue.ToString());
                    break;
            }
        }

        this.SetConnectionInfo(reportDocument);

        var frm = new FormViewer();

        frm.Report = reportDocument;

        frm.ShowDialog();

        frm.Dispose();

        this.Close();
    }

Cuando ejecuto el informe del diseñador, funciona bien. Puede ver que los parámetros se están pasando mientras los estoy mostrando en mi informe.

alt text

Para mis informes que se extienden desde procedimientos almacenados, los parámetros parecen pasar bien, son solo los compuestos por todas las tablas.

Por lo que vale, aquí está mi fórmula de selección:

 {employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
¿Fue útil?

Solución

Esto se ha resuelto con la última versión de Crystal Reports para Visual Studio 2010.

Otros consejos

Cuando dices "no se pasan", ¿qué se pasa? ¿Están en blanco?

Puede revisar los parámetros ellos mismos, y solo para sonrisas, intente darles un nombre diferente, algo extra único. Podría haber algo tonto con alguna otra configuración de informes o la forma en que se definen los parámetros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top