0

私は数日間この答えを探していましたが、ReportViewer Control でレポートのパラメーターを自動的に入力できるように思われる情報を少し得ています。私が試して見つけたものはすべてうまくいかないようです。パラメータ プロンプトが Windows フォームで機能するようになりましたが、ASP.NET では機能しません。

Report-viewer の Parameter Prompts を ASP.NET で動作させることはできますか? もしそうなら、どのように?

手動で実行できることは知っていますが、ReportViewer Prompt を自動的に作成できるとしたら、なぜ自分でプログラムする必要があるのでしょうか。

編集:これはところでローカル処理用です。

4

2 に答える 2

4

パラメータのプロンプトは、ローカル処理モードではサポートされていません。

そのダイアログの [ヘルプ] ボタンをクリックすると呼び出されるレポート パラメーター ダイアログ ボックス (Visual Studio レポート デザイナー)の記事では、紹介テキストで次のように述べています。

[レポート パラメーター] ダイアログ ボックスで指定したパラメーター プロパティは、レポート定義の一部になります。一部のプロパティは、プログラムによる使用のみを目的としています。リモート レポート サーバーで処理されるレポートとは対照的に、ローカルで処理されるレポートには、パラメーター値の選択または入力に使用されるパラメーター入力領域がありません。

少しテストしたところ、プログラムで変更しない限り、パラメーターに指定されたデフォルト値が使用されることがわかりました。この設計上の決定に関する説明は見つかりませんでした。ローカル処理を使用し、ユーザー入力を求めたい場合は、次のソリューションに従うことをお勧めします。

レポートをReportViewer Controlに埋め込むと、それをページまたはフォームに配置し、そのページまたはフォームにカスタム入力コントロールを追加して、レポート パラメーターを収集できます。コード ビハインド ファイルでは、次のようなコードを使用してパラメーター値を渡します。

List<ReportParameter> parameterList = new List<ReportParameter>();
List<string> selectedProductTypes = listboxProductTypes.GetSelectedValues();
ReportParameter productTypes = new ReportParameter("ProductTypes", selectedProductTypes.ToArray(), false);
ReportParameter username = new ReportParameter("Username", "<current user>", false);
parameterList.Add(productTypes);
parameterList.Add(username);
reportViewer.LocalReport.SetParameters(parameterList);

この例では、複数選択 ListBox から値が取得される複数値パラメーターを渡す方法を確認できます。

于 2012-10-11T09:16:46.300 に答える
2

また、パラメーター入力を収集するためのコントロールを備えたページを作成し、それらを設定されたセッション変数に入れてから、レポートビューアーを備えたページに転送することもできます。

オブジェクトデータソースを使用し、パラメータソースをSessionとして設定します。

作成する必要がある唯一のコードは、セッション変数を入力することです。

于 2012-12-01T02:00:33.653 に答える