Как передать параметры в Crystal Report для Visual Studio 2010?Похоже, они игнорируются - PullRequest
4 голосов
/ 17 ноября 2010

Это работало правильно в Visual Studio 2008, но, поскольку я переключился на Visual Studio 2010 и Crystal Reports для Visual Studio 2010, мои переданные параметры игнорируются.

Они отображаются в отчете, просто игнорируются, когда дело доходит до формулы выбора! Вот мой код для создания отчета и передачи параметров.

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

Когда я запускаю отчет от дизайнера, он работает просто отлично. Вы можете видеть, как передаются параметры, поскольку я отображаю их в своем отчете.

alt text

Для моих отчетов, которые запускаются из хранимых процедур, параметры, кажется, проходят просто отлично, это только те, которые составлены из всех таблиц.

Для чего это стоит, вот моя формула выбора:

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

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Эта проблема была решена в последней версии Crystal Reports для Visual Studio 2010.

0 голосов
/ 18 января 2011

Когда вы говорите "они не проходят", что проходит?Они пустые?

Вы можете просмотреть сами параметры, и просто ради ухмылки попробуйте дать им другое имя, нечто более уникальное.Там может быть что-то глупое с какой-то другой настройкой отчета или определением параметров.

...