如何将参数传递给Crystal Report for Visual Studio 2010?看起来他们被忽略了

时间:2010-11-17 14:46:19

标签: c# visual-studio-2010 crystal-reports crystal-reports-2010

这在Visual Studio 2008中正常运行,但由于我已切换到Visual Studio 2010和Crystal Reports for 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 个答案:

答案 0 :(得分:1)

使用最新版本的Crystal Reports for Visual Studio 2010已解决此问题。

答案 1 :(得分:0)

当你说“他们没有通过”时,会有什么结果?他们是空白吗?

您可以查看参数本身,只是为了咧嘴,尝试给它们一个不同的名称,一些额外的独特之处。其他一些报告设置或参数的定义方式可能会有些蠢蠢欲动。