データベースにリンクするプログラムを C# で作成しています。私が抱えている問題は、特定の顧客の販売に関するクリスタルレポートを設定したいということです(常に1人がアイテムを購入したとき)。データバインドされたコンボボックスからその人を選びたいです。ボタンをクリックすると、1 人が購入したことだけがレポートに表示されます。残念ながら、すべてのクライアントを示すクリスタルレポートを作成しました。
その Crystal レポートに特定のクライアントを送信するにはどうすればよいですか?
データベースにリンクするプログラムを C# で作成しています。私が抱えている問題は、特定の顧客の販売に関するクリスタルレポートを設定したいということです(常に1人がアイテムを購入したとき)。データバインドされたコンボボックスからその人を選びたいです。ボタンをクリックすると、1 人が購入したことだけがレポートに表示されます。残念ながら、すべてのクライアントを示すクリスタルレポートを作成しました。
その Crystal レポートに特定のクライアントを送信するにはどうすればよいですか?
アナンドが言ったように、データベースでフィルタリングするとレポートのパフォーマンスが向上しますが、パラメーターをクリスタルレポートに送信する場合は、コードで設定するだけです
myDataReport.SetParameterValue("parameterName", parameterValue);
コンボ ボックスを使用する場合は、パラメーターを使用した SQL クエリが最適です。これを行う方法の小さな例を次に示します。
string customer = ComboBox.Text;
string connectionString =
ConsoleApplication1.Properties.Settings.Default.ConnectionString;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(
"SELECT * FROM table WHERE table.customer LIKE @Name", connection))
{
//
// Add new SqlParameter to the command.
//
command.Parameters.Add(new SqlParameter("Name", customer));
...等々。レポート自体にパラメータを追加することもできます。レポートを実行するたびに、その値を求めるプロンプトが表示されます。それは少し簡単かもしれませんが、他のオプションよりも本当に遅いかどうかはわかりません。
それが役立つことを願って、
クリス