コンボボックスをフィルターとして使用
ダッシュボードでは、コンボボックスを 1 つのレポートに配置し、他の 1 つ以上のレポートに表示する値を制御するために使用することがよくあります。コンボボックスで選択した値は変数に渡され、これがレポートパラメーターとして使用されます。レポートは、ダッシュボード上のウィジェットに配置されます。同じパラメーターを持つか、同じルックアップを参照する他のレポートは、自動的にリンクされます。たとえば、コンボボックスから日付を選択すると、日付パラメーターが含まれるすべてのウィジェットが更新されます。
このようにコンボボックスを使用する場合、コンボボックスと値を確実に同期させることが重要です。たとえば、ユーザーがコンボボックスから日付を選択できず、リンク先のレポートで別の日付の値を表示できるようなことは望ましくありません。
コンボボックスと値を確実に同期するには、コンボボックスから渡される変数を入力変数と出力変数の両方として使用します。
動的レポートを作成する場合は、コンボボックスをフィルターに使用するのは不適切です。動的レポートは特定のデータソースに依存しないからです。このような場合は、XML 変数の使用を検討してください。
例
この例は、どのようにしてコンボボックスと値が同期されなくなるのかを示します。
あるレポートに、日付のリストを含むコンボボックスを表示します。デフォルトでは、日付は [すべての年度] です。
コンボボックスの出力は変数に格納しますが、入力変数はありません。この変数はレポートパラメーターとして使用します。
このレポートを、リンク先の他のレポートと一緒にダッシュボードに配置します。
コンボボックスから「2004」を選択します。これで、2004 が変数に渡されます。
ダッシュボードにあるリンク先のウィジェットでは、2004 に従って値の表示が自動的に更新されます。
ダッシュボードを保存します。
デフォルトでは、パラメーターの値はダッシュボードと一緒に保存されます。したがって、パラメーターの現在値 (2004) が保存されます。
ログオフしてから、ダッシュボードを再ロードします。
コンボボックスで「2004」が選択されるという予想に反し、[すべての年度] に戻っています。
こうなる理由は、変数/パラメーターの値が保存されたにも関わらず、ダッシュボードから値をコンボボックスに渡す手段がないからです。それには入力変数が必要です。
しかし、他のウィジェットにある値はダッシュボードに保存され、ダッシュボードがロードされると表示されます。そのため、ダッシュボードを再度開くと、コンボボックスは [すべての年度] に戻りますが、他のウィジェットには 2004 年の値が以前のまま表示されます。
この問題を解決する方法は 2 つです。1 つは Application Studio で設定し、もう 1 つはダッシュボードに設定できます。Application Studio で問題を解決するには、同じ変数を出力変数と入力変数の両方に使用します。
ダッシュボードの場合は、パラメーターの保存を無効にし、コンボボックスを「先行ウィジェット」にするのが唯一の方法です。ダッシュボードが再ロードされると、コンボボックスによって他のウィジェットが操作されます。この方法は、コンボボックスが [すべての年度] に戻るのを阻止するのではなく、リンク先のレポートで [すべての年度] を反映した値が表示されるようにします。