Question

fonctionnait correctement dans Visual Studio 2008, mais depuis que je suis passer à Visual Studio 2010 et Crystal Reports pour Visual Studio 2010, mes paramètres passés sont ignorés.

Ils affichent dans le rapport, tout simplement ignoré quand il vient à la formule de sélection! Voici mon code pour créer le rapport et en passant les paramètres.

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

Quand je lance le rapport du designer il fonctionne très bien. Vous pouvez voir les paramètres sont passés comme je les affiche dans mon rapport.

text alt

Pour mes rapports qui exécutent des procédures stockées les paramètres semblent passer très bien, il est seulement ceux composés de toutes les tables.

Pour ce que ça vaut la peine, voici ma sélection formule:

 {employee.HireDate} >= {?StartDate} And {employee.HireDate} <= {?EndDate}
Était-ce utile?

La solution

Cela a été résolu avec la dernière version de Crystal Reports pour Visual Studio 2010.

Autres conseils

Quand vous dites « ils ne sont pas passés », ce qui ne se passé? Sont-ils en blanc?

Vous pouvez revoir les paramètres eux-mêmes, et juste pour des grimaces, essayez de leur donner un nom différent, quelque chose de plus unique. Il pourrait y avoir quelque chose loufoque passe avec un autre paramètre de rapport ou la façon dont les paramètres sont définis.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top