ここでは、1 つの JSP ページに 2 つの ItemsGrid コンポーネントと、1 つの Path コンポーネントがある場合のシナリオを例にとって説明します。Path コンポーネント(名前 path)と、2 つの ItemsGrid コンポーネントの 1 つ(名前 foldersGrid)が同じ EnterpriseItems Bean(名前 folders)にバインドされているとします。この EnterpriseItems Bean が Crystal Enterprise システム内のフォルダ階層を表示し、ユーザーは path と foldersGrid を使用してこの階層をナビゲートできます。この 2 つのコンポーネントは 1 つの EnterpriseItems Bean にバインドされているため、自動的に同期化します。したがって、ユーザーが片方のコンポーネントを使用して階層をナビゲートすると、その変化はもう一方のコンポーネントに反映されます。
ただし、もう 1 つの ItemsGrid コンポーネント(名前 reportsList)は、別の EnterpriseItems Bean(名前 reports)にバインドされ、指定した任意のフォルダの Crystal レポートを表示します。ここで、reportsList をこのページの他のコンポーネントと連係させる方法が問題になります。この問題は、これらのコンポーネントを正しい順序で同期化することによって解決できます。
2 つめの ItemsGrid コンポーネント(reportsList)をページ内で有効に他のコンポーネントと連係させるには、ユーザーが foldersList または path の特定のフォルダ レベルをナビゲートした場合に、reportsList が同じフォルダ レベルのレポートを表示するように、これらのコンポーネントを同期化する必要があります。すなわち、reports EnterpriseItems Bean の parentItemID プロパティを、folders Bean の parentItemID プロパティの現在の値に設定します。この現在の値とは、ユーザーがフォルダのグリッドまたは Path コンポーネントにあるフォルダをクリックするたびに取得される値です。これにより、レポートのグリッドは常に同レベルの情報を表示します。コンポーネント間の連係を有効にするには、foldersList コンポーネントと path コンポーネントの同期化を設定します。
path コンポーネントを選択します。
reportsList コンポーネントを選択して、現在のコンポーネントと同期化します。
メモ 複数のコンポーネントが同じ EnterpriseItems Bean にバインドしている場合に そのうちの 1 つのコンポーネントを同期化しようとすると、複数のコンポーネントが同一の itemSource プロパティ値(EnterpriseItems Bean)を共有しており、選択したコンポーネントに同期を追加すると、この Bean にバインドされているすべてのコンポーネントに同期が追加されることを確認するメッセージが表示されます。[OK]をクリックして同期を確認します。
foldersList コンポーネントを選択して、2 から 5 のステップを繰返し、reportsList コンポーネントと同期化します。
同期化の操作では、アプリケーションに 2 つの重要なコードを追加します。まず、action listener を foldersList と path コンポーネントに追加します。
actionListener=モ#{pc_<nameofpage>.doAction}モ
次に、このページの分離コード java クラス(RAD によって作成され、通常は <nameofpage>.java と命名される)にアクション イベント ハンドラ メソッドを追加して同期化を実行します。
reports.setParentItemID(folders.getParentItemID());
同期化の順序は、重要です。この例では、foldersList を reportsList に、そして path を reportsList に同期化しています。したがって、foldersList または path がクリックされると、reportsList が同期化されます。しかし、この逆の場合は同期化されません。reportsList を foldersList に対して同期化していないため、reportsList でのアクションで foldersList が変化することはありません。コンポーネントの選択と同期化の設定にあたっては、最終的に目標とするアプリケーションでの動作を念頭に置いて作業を進めてください。
| Business Objects http://japan.businessobjects.com/ サポート サービス http://japan.businessobjects.com/services/ |