SSRS レポートにあるパラメーターの 1 つは Customers と呼ばれます。ユーザーは、ドロップダウン リストから複数の顧客を選択できるようにしたいと考えています。当社の顧客リストには、500 以上のエントリがあります。ドロップダウン リストで多くの値を取得するにはどうすればよいですか。さらに言えば、パラメーターはいくつの値を処理しますか? ドロップダウン リストを設定して値を入力できるようにする方法はありますか? その最後の質問の例は、あなたが住んでいる州を尋ねるほとんどのフォームで、リストをクリックして「TX」と入力すると、下にスクロールする代わりにテキサスに移動する方法のようなものです. それが理にかなっていることを願っています。事前にご協力いただきありがとうございます。
2 に答える
パラメータのフィールドをオートコンプリート テキストで動作させることはできません。また、小さなフィールドに 500 個の値を持つことはユーザーフレンドリーではないことに同意します。
私の提案は、パラメーターを 2 ~ 4 の異なるパラメーターに分割することです (顧客の検索をより簡単にするため)。各パラメーターには ABC に従って顧客名が付けられます (たとえば、最初のパラメーターには AI からの顧客名が含まれます。 2番目のJR、最後のSZ)
その場合、クエリは次のようになります。
SELECT customerName,customerAddress,customerCity,...
FROM customerTable
WHERE (customerID IN (@customerParam1) OR customerID IN (@customerParam2) customerID IN (@customerParam3))
値を入力して2番目の部分を実行する方法がわかりませんが、ドロップダウンリストを設定する方法を支援できます。まず、顧客名と顧客の一意の値を選択するクエリを記述します。
例:
SELECT CUSTOMER_NAME, CUSTOMER_ID
FROM CUSTOMER_TABLE
次に、パラメータを追加し、データ型と[複数の値を許可する]チェックボックスを選択します。次に、プロパティで[使用可能な値]タブをクリックします。それが開いたら、[クエリから値を取得]を選択し、作成したクエリを選択します。それが選択されたら、[値]フィールドに移動し、クエリから一意の値を選択し、[ラベル]フィールドで顧客名を選択すると、すべて表示されます。
メインクエリでパラメータの値を使用する場合は、=ではなくIN関数を使用していることを確認する必要があります。これは、1つの値だけを取得するのではなく、すべてを一度に取得するためです。
例:
SELECT CUSTOMER_NAME,CUSTOMER_ADDRESS,CUSTOMER_CITY,...
FROM CUSTOMER_TABLE
WHERE CUSTOMER_ID IN (@CUSTOMERNAMEPARAMETER)
パラメータの名前は、使用する必要のある変数名です。
また、デフォルト値に移動して[クエリから値を取得]を選択し、クエリと一意の値を再度選択することで、すべてをデフォルトで選択できるようにするためのもう1つのヒントもあります。
また、リストボックスのアイテム数の制限に問題はないと思います。私はそれをほぼ1,000まで持っていて、問題はありませんでした。