Wie übergeben Sie Parameter an Crystal Report für Visual Studio 2010? Sieht so aus, als würden sie ignoriert

StackOverflow https://stackoverflow.com/questions/4205541

Frage

Dies funktionierte in Visual Studio 2008 korrekt, aber da ich zu Visual Studio 2010 und Crystal Reports für Visual Studio 2010 wechselt, werden meine bestandenen Parameter ignoriert.

Sie werden im Bericht angezeigt, nur ignoriert, wenn es um die Auswahlformel geht! Hier ist mein Code zum Erstellen des Berichts und zum Übergeben der Parameter.

 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();
    }

Wenn ich den Bericht vom Designer ausführe, funktioniert es gut. Sie können sehen, dass die Parameter übergeben werden, wenn ich sie in meinem Bericht anzeige.

alt text

Für meine Berichte, die aus gespeicherten Prozeduren ausgeführt werden, scheinen die Parameter gut zu bestehen, es sind nur diejenigen, die aus allen Tischen bestehen.

Für das, was es wert ist, ist hier meine Auswahlformel:

 {employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
War es hilfreich?

Lösung

Dies wurde mit der neuesten Version von Crystal Reports für Visual Studio 2010 gelöst.

Andere Tipps

Wenn Sie sagen "Sie werden nicht bestanden", was wird dann bestanden? Sind sie leer?

Sie können die Parameter selbst überprüfen und nur zum Grinsen versuchen, ihnen einen anderen Namen zu geben, etwas Besonderes. Mit einer anderen Berichtseinstellung oder der Art und Weise, wie die Parameter definiert werden, könnte etwas doofes los sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top