C#で加工したデータをクリスタルレポートに引き渡す方法です。


バージョンが結構古いですが、やり方は変わらないのではと思います。


利用バージョン:Visual Studio 2003に付属のクリスタルレポート



全お客さんにお知らせを入れた納品書を発行する事を想定し、テキストボックスに文章を入力し、その値をクリスタルレポートに出力します。


新規でレポートを作成し、フィールドエクスプローラのパラメータフィールドを利用します。

(ここではレポート名は"Report1.rpt"とします)


パラメータフィールドを右クリックし、「新規」を選び適当に「Comment」という名前をつけ「OK」をクリックします。


パラメータフィールドに追加されたCommentをドラッグ&ドロップでレポートに乗っけます。


これで準備は完了です。


次にC#で次のようなコードを書きます。



CrystalDecisions.CrystalReports.Engine.ReportDocument report =
    new Report1();
report.SetParameterValue("Comment"
    , "備考:\r\n" + this.CommentText.Text);
this.ReportView.ReportSource = report;


上記の場合は、Windowsフォームで同フォーム内にNameプロパティがCommentTextのテキストボックスと


NameプロパティがReportViewのCrystalDecisions.Windows.Forms.CrystalReportViewerオブジェクトが配置されていることが前提です。


これで、複数ページにまたがって同的な値を使いまわす事が可能です。