- - PR -
クリスタルレポートでパラメーター例外
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-09-24 19:49
VS2005 Pro版 + 付属クリスタルレポートでasp.netの開発中です。
ある程度デザインして実行してみたところ、「パラメータ値がありません。」例外が 発生してしまい、先に進みません。原因に心当たりのある方、ご教示願います。 ソースは以下の様な実装です。 ReportDocument doc = new ReportDocument(); doc.Load("〜.rpt"); doc.SetParameterValue("@key1", "value1"); doc.SetParameterValue("@Key2", "value2"); doc.SetParameterValue("@Key3", "value3"); doc.SetParameterValue("Key4", "value4"); doc.SetParameterValue("Key5", "value5"); doc.SetDataSource(DataTable1); doc.ExportToDisk(ExportFormatType.PortableDocFormat, "〜.pdf"); 例外はExportToDiskのタイミングで発生しています。 〜.rpt のパラメータフィールドは @key1, @key2, @key3, key4, key5 があり、@key1〜@key3はデータベースフィールドに与えた ストアドの引数が自動で設定された様子です。 key4, key5 が明示的に追加したパラメータです。 _________________ | ||||||||
|
投稿日時: 2008-09-24 23:54
明示的に追加したのであれば、その部分のコードはありますか? デザイナによる設定ですか? いずれにせよ認識している中のどこかに矛盾があるだけのような気がします。 Parameter を列挙して何が存在しないのかハッキリさせた方が早いでしょうね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-09-25 01:21
デザイナの右ボタンで追加しています。 いまのところ、特定のパラメーターが未設定なのか、すべてが未設定となってしまっているのかも不明です。。。 明日(というか、今日)いろいろと試したいと思っています。 | ||||||||
|
投稿日時: 2008-09-25 10:48
で、あれば "Key4" と "Key5" というパラメータ名にはなっていないと思います。 "@" など何らかのプリフィクスが先頭に追加されるハズです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-09-25 14:09
解決しました。
doc.SetParameterValue(...); doc.SetDataSource(...); doc.ExportToDisk(...); としていたのですが、ステップ実行しながら確認したところ、 1. SetParameterValue()した後ではdoc.ParameterFields[0].CurrentValues[0].Valueには値がセットされている。 2. 続いてSetDataSource()すると、上記Valueの値がnullとなっている。 ことが判ったので、ためしにSetParameterValueとSetDataSourceの順序を 逆にしたところ、期待通りの動きになりました。 順序も重要なのですねぇ。 じゃんぬさん、お手数をおかけして申し訳ありませんでした。 ちなみに、フィールドエクスプローラ→パラメータ フィールド→右ボタン→新規... で表示される「パラメータ フィールドの作成」ダイアログでパラメータ名を入力する ので、特に固定のプリフィックスは付かないのでは ? と思っています。 | ||||||||
|
投稿日時: 2008-09-25 15:46
ああ、気付けれませんでした。orz バウンドした時に剥がれてしまうんでしたね。
私が式フィールドと勘違いしていたのだと思います。 申し訳ないです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1