セル型でリピーターを作成します。リピーターは、ページとは別にレイアウトしたテンプレートをリストビューのデータの件数分繰り返して表示するセル型です。繰り返し表示を行う方向は、縦方向、横方法のほか、折り返し表示にも対応しています。また、リピーターは表示だけでなくデータの編集にも対応しています。
リピーターは元データとしてリストビューを使用する必要があるため、ここでは以下のようなリストビューがあることを前提にリピーター型セルの使い方を説明します。なお、元データとなるリストビューは必ずしも実行時の画面上に表示されている必要はなく、非表示行や非表示列として、画面上に表示しないようにしても構いません。ただし、ページをエクスポートする場合にはリピーター型セルの右側、もしくは左側の領域にはリストビューを作成しないでください。リストビューやリピーター型セルは、エクスポート処理の中で出力するデータに合わせて動的な行の追加が行われます。リピーター型セルの右隣にリストビューやほかのリピーター型セルを配置した場合、それによる動的な行の追加の影響を受けるため、出力されるレイアウトは期待する結果となりません。
注意:ページロード時のコマンドでクエリーコマンドを使用してリピーター型セルに表示されるデータを絞り込む場合、データソースとするリストビューの[ページ表示時にリストビューのデータを読み込まない]プロパティを有効に設定するようにしてください。本設定が無効の場合、データソースとするリストビューにデータ連結されているテーブルのデータ全件がリピーター型セルに描画され、その状態からのクエリーで絞り込まれた結果への差分変更行われる動作となります。このような差分変更が大量に発生する場合、変更量に応じてリピーター型セルの描画に時間がかかり、パフォーマンス上の問題となる可能性があります。
リストビューを右クリックし、コンテキストメニューから[列名を自動設定]を選択し、すべての列に列名を設定します。
リピーター型セルのテンプレートでは、テーブルのフィールドに対して直接データ連結を行うのではなくリストビューの列に対して連結を行うため、列名が必要となります。
セルの領域を選択し、[リピーター]型セルを設定します。
作成した[リピーター]型セルを選択した状態で、右ペインの[セル型]タブにある[データソースとするリストビュー]ドロップダウンボタンリストから、対象のリストビューを選択します。
右ペインの[セル型]タブにある[テンプレートの編集...]ハイパーリンクをクリック、またはリピーター型セルをダブルクリックしてテンプレート編集画面へと作業ウィンドウを切り替えます。
[リピーター]型セルを右クリックし、コンテキストメニューの「テンプレートの編集」を選択することでも同様の操作を行えます。
テンプレートをデザインし、リストビューのデータを表示させたいセルの場合には、右ペインの[セル型]タブにある[連結するリストビューの列]に任意の列名を設定します。
データの表示だけでなく、入力が可能なセル型を使用してデータの編集を行うことも可能です。その場合、データの確定処理は対象のリストビューの設定に依存します。
[連結するリストビューの列]の(選択の状態)は、リストビューの「選択列」と連動しています。選択状態が1、未選択の状態は0となります。例えば、チェックボックス型セルに対して(選択の状態)連結することで、リピーターセルにも「選択列」と同等の機能を構築することができます。
テンプレートのシート上に表示されている破線は、親ページの[リピーター]型セルの大きさを表しています。
[テンプレートページ ツール]コンテキストタブセットの[デザイン]コンテキストタブにある[親ページのスナップショット]トグルボタンをクリックすると、親ページの状態を同時に確認しながらテンプレートを編集できます。もう一度[親ページのスナップショット]トグルボタンをクリックすると、元の状態へと戻ります。
[テンプレートページ ツール]コンテキストタブセットの[デザイン]コンテキストタブにある[テンプレート編集の終了]ボタンをクリックして、親ページへと戻ります。
[ホーム]リボンタブにあるデバッグの[開始]ボタンをクリックすると、次の図のようにリストビューのレコード数分だけリピーターのテンプレートに連結データが表示され、繰り返し表示が行われることを確認できます。
ヒント:
リピーターに連結しているリストビューに[新規行の追加を許可]がチェックされている場合、アプリケーション実行中、リピーターセルの最終行に空白のテンプレートが追加されます。
リピーター型セルの右ペインにある[セル型]タブで設定可能はプロパティは次の通りです。
プロパティ |
説明 |
既定値 | |||||||||||||||
データソースとするリストビュー |
リピーター型セルのテンプレートにデータを連結するリストビューを選択します。リストビューを選択していない場合、「テンプレートの編集」を行うことはできません。 |
ページ内にリストビューが存在する場合、そのいずれかのリストビューが自動的に設定されます。 | |||||||||||||||
テンプレートの編集 |
作業ウィンドウをテンプレートを編集する画面へと切り替えます。 |
||||||||||||||||
クリック時のコマンド | クリック時に実行されるコマンドを設定します。 | ||||||||||||||||
表示モード |
次の3つのモードをサポートします。
|
縦方向 | |||||||||||||||
折り返し方向 |
[表示モード]が「折り返し」の場合にのみプロパティとして表示されます。行方向に並べて折り返すか、列方向に並べて折り返すかのどちらかを選択します。 |
行方向 | |||||||||||||||
親ページへの表示方法 |
次の3つのモードをサポートします。
|
スクロール | |||||||||||||||
データが存在しない場合の表示設定 |
データが存在しない場合に表示する画像と文字列を設定します。この表示はリピーターの配置設定(横位置と縦位置)が反映されます。
|
設定なし |
データの確定処理は、[リピーター]型セルのデータソースとするリストビューの[データの確定タイミング]設定により異なります。
[リストビューのデータを即時更新しない]が無効の場合
リピータ上の各レコードに相当する領域をクリックしてリスビューのカレントレコードが移動した場合、編集したデータはデータベースに反映されます。
リピータの領域外をクリックした場合、その前の時点で編集していたリピーター上のデータはデータベースに反映されます。
テンプレートの上の入力セルにデータの入力規則を設定した場合、入力規則エラーの場合でもリストビューの値は表示上は変更が反映されますが、データベースには反映されません。
[リストビューのデータを即時更新しない]が有効の場合
[処理の種類]が「リストビューの更新確定」に設定されている[リストビューの操作]コマンドを実行した場合、リピータ上で編集したすべてのデータはデータベースに反映されます。
[リピーター]型セルのデータソースとするリストビューが詳細リストビューとして設定されている場合、そのマスターとなるデータが確定される際にリピータ上で編集したすべてのデータもデータベースに反映されます。
テンプレートの上の入力セルに設定したデータの入力規則がエラーの場合、以下のコマンドは実行されません。
[処理の種類]が「リストビューの更新確定」に設定されている[リストビューの操作]コマンド
[テーブルデータの更新]コマンド
[ページ遷移]コマンド
テンプレートを編集した[リピーター]型セルをコピーして貼り付けた場合、テンプレートの編集内容はコピーされません。なお、ページを複製した場合や別のForguncyプロジェクトからページをインポートした場合はこの限りではありません。
テンプレートの編集画面が作業ウィンドウに表示されている状態でデバッグの開始を行った場合、スタートページが設定されていなければ、テンプレートの親ページが表示されます。
通常はリストビュー上のセルにおいてのみ使用可能な[レコードの削除]コマンドは、テンプレート内のセルでも使用できます。
親ページ上のセルなど、テンプレート以外のセルをコピーしてテンプレート上に貼り付けた場合、セル型は反映されずスタイルのみが反映されます。これは、テンプレート上でサポートされているセル型が制限されていることによる動作上の仕様です。
テンプレートでは数式がサポートされないため数式バーは表示されませんが、セルに数式を直接入力した場合や、既定値の設定に数式を設定した場合も同様にサポートされません。
テンプレート内で[Excelエクスポート(ページ)]コマンド、および[PDFエクスポート]を[ボタン]型セル等に設定した場合、エクスポート対象はクリックしたボタンが存在するレコードのテンプレート部分のみとなります。その際のExcelのファイル名は、「リストビュー名」にレコード番号を付加した名称となります。なお、親ページをエクスポートすることはできません。
[リピーター]型セルのデータソースとするリストビューのデータソースとするリストビューの[編集を許可]の設定値に関わらず、リピーターによる更新は有効となります。
[リピーター]型セルの横方向にリストビュー(非表示列含む)を配置するとエクスポート処理が期待する結果になりません。
[リピーター]型セル部分を列の非表示機能、もしくは行の非表示機能で非表示とした場合、データによって動的に追加される行は非表示とはならず、エクスポート結果に出力されます。
[リピーター]型セルのデータソースとするリストビューにおいてロードオンデマンドの設定が有効な場合、リピーターのスクロールバーを下端、あるいは右端にスクロールさせることでロードオンデマンドの機能が動作します。
リピータ上の各レコードに相当する領域をクリックした場合、そのクリックした領域に合わせてリストビューのカレントレコードが遷移します。