- - PR -
クリスタルレポートのリフレッシュ時にパラメータ設定したい。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-05-02 10:37
VS2005に付属のクリスタルレポートを使用しています。
ReportViewerのリフレッシュボタンを押した際に プログラムからレポートのパラメータ値を設定したいのですが、 パラメータ値の入力画面が表示されてしまいます。 どうしてなのでしょうか? /* レポートのパラメータ設定用 */ private ParameterFields paramFields; private string _所属課 = "開発課"; private string _社員番号 = "abc123"; private string _担当者名 = ""; private void crystalReportViewer1_Load(object sender, EventArgs e) { SetReport(); } private void SetReport() { // データをセットする SqlConnection cn = new SqlConnection(Resource1.CntStr); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = new SqlCommand(); sda.SelectCommand.CommandType = CommandType.StoredProcedure; sda.SelectCommand.CommandText = "mt_印刷_一覧表"; sda.SelectCommand.Connection = cn; cn.Open(); rpDataSet RpDs = new rpDataSet(); sda.Fill(RpDs, "T_一覧表"); cn.Close(); // パラメータ設定します(SetDataSourceより前) paramFields = new ParameterFields(); R_ParamSet("社員番号", _社員番号); R_ParamSet("所属課", _所属課); R_ParamSet("担当者名", _担当者名); crystalReportViewer1.ParameterFieldInfo = paramFields; // レポート接続 ReportDocument oRpt = new ReportDocument(); oRpt.Load("C:\rpt\一覧表.rpt"); oRpt.SetDataSource(RpDs); this.crystalReportViewer1.ReportSource = oRpt; } private void R_ParamSet(string name, string val) { ParameterField paramField = new ParameterField(); ParameterDiscreteValue discreteVal = new ParameterDiscreteValue(); paramField.ParameterFieldName = name; discreteVal.Value = val; paramField.CurrentValues.Add(discreteVal); paramFields.Add(paramField); } //---ここでパラメータをクリアして、データを設定し直しているつもりですが、 //---リフレッシュを押すとパラメータ値の入力が聞かれてしまう。 private void crystalReportViewer1_ReportRefresh(object source, CrystalDecisions.Windows.Forms.ViewerEventArgs e) { this.crystalReportViewer1.ParameterFieldInfo.Clear; this.crystalReportViewer1.ReportSource = null; _担当者名 = "○○さんが印刷します。"; SetReport(); } |
|
投稿日時: 2007-07-09 16:52
これの回答ってありましたか?
同様のことではまっているので回答を参考にしたいのです。 |
1