4

これはVisualStudio2008では正しく機能していましたが、VisualStudio2010とCrystalReportsfor 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();
    }

デザイナーからのレポートを実行すると、問題なく機能します。レポートにパラメーターを表示しているときに、パラメーターが渡されていることがわかります。

代替テキスト

ストアドプロシージャから実行される私のレポートの場合、パラメータは問題なく通過するように見えます。これは、すべてのテーブルで構成されるものだけです。

それが価値があるものについては、ここに私の選択式があります:

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

2 に答える 2

1

これは、VisualStudio2010用のCrystalReportsの最新バージョンで解決されています。

于 2012-03-27T15:35:03.040 に答える
0

「合格しない」と言うと、何が合格しますか?それらは空白ですか?

パラメータ自体を確認して、ニヤリと笑う場合は、別の名前を付けてみてください。他のレポート設定やパラメータの定義方法で何かおかしなことが起こっている可能性があります。

于 2011-01-18T01:18:21.860 に答える