0

employeeID、、、およびemployeeEmailを表示するレポートがあります。次に、この LookUp 関数を使用してスーパーバイザーのメールを見つけます。supervisorIDexpirationDate

=Lookup(Fields!supervisorID.Value, Fields!employeeID.Value, Fields!employeeEmail.Value, "DataSet1")

で特定の日付範囲のパラメータを設定すると、問題が発生します。expirationDate

       expirationDate >=@startdate 
   AND expirationDate <=@enddate

これにより、検索結果が絞り込まれ、有効期限が日付範囲内にある従業員のみが表示されます。expirationDateただし、スーパーバイザーも範囲内にない場合は、スーパーバイザーのメール アドレスも除外されます。

LookUp 式に日付範囲のパラメーターを適用したくありません。スーパーバイザーのメールが常に表示されるようにします。日付範囲パラメーターは、スーパーバイザーではなく、有効期限によって従業員を除外することを目的としているためです。

expirationDateそのため、範囲内にあるために従業員が表示される場合、supervisorID常に表示される必要がありますが、ルックアップ式がデータセットを再クエリして電子メールを検索するためexpirationDate、スーパーバイザーの範囲内にない場合、結果はブロックされますそれも。

パラメータからルックアップ/式を除外する方法はありますか? または、パラメータが特定の列フィールドのみを除外するには?

4

2 に答える 2

0

日付範囲フィルターはどこで指定していますか? データセット上にある場合、ルックアップ関数がデータセットに含まれていない行を参照する方法はありません。1 つの可能性は、日付フィルターをテーブル(または使用しているデータ領域) に追加することです。これにより、データセット内のすべての行がルックアップ関数によって参照されるようになります。これは、小さなデータ セットには適したソリューションですが、フィルター処理されていないデータセットが非常に大きい場合、明らかにうまくスケーリングできません。

一般的には、クエリを編集して従業員とスーパーバイザーを結合することにより、データセットの各行のスーパーバイザーの詳細を取得することをお勧めします。これはより効率的であり、従業員の日付でデータセットをフィルター処理し、ルックアップ機能を忘れることができます。これは、レポートが行う作業が少なくなることを意味します。

于 2015-06-08T09:51:12.973 に答える
0

日付でも「DataSet1」をフィルタリングしていますか?データセットに検索可能なすべての電子メールアドレスが含まれるように、そのフィルタリングを削除できるはずです。これは、おそらくコンテンツが DataSet1 とは異なるデータセットから来ているため、レポートに表示されるスーパーバイザーには影響しません。そのため、ルックアップを使用しています。

于 2015-06-08T09:19:19.160 に答える