プリインストールプラグインです。
コマンドに「リストビューデータの受け渡し」が指定できるようになり、リストビューの任意のデータを、別のリストビューへ追加することができます。
※利用しているバージョンによって対応するプラグインが異なります。以下より該当するバージョンをお選びください。
Forguncy Builder / Forguncy Serverのバージョン | プラグイン |
10.0.10.0以降の10.x.x.x |
対象行 |
リストビュー内のどの行を受け渡しの対象とするかを指定します。
|
インポートモード |
インポートモードが「追加」の場合、単純にデータを追加します。インポートモードが「マージ」の場合、新しいデータが追加され、更新対象となる既存のデータは更新されますが、それ以外の既存のデータが削除されることはありません。インポートモードが「置き換え」の場合、新しいデータを追加し、既存のデータを更新および削除を行います。 「マージ」、および「置き換え」の場合、Forguncyが行を一意に識別するために「一意となる列」を指定する必要があります。 既定値は「追加」です。 |
受け渡し元 | リストビューの場合は対象のリストビュー内のいずれかのセルを設定します。リピーターの場合は対象のリピーターセルを設定します。現在のページのセルのみ、受け渡し元に設定できます。 |
受け渡し先 | リストビューの場合は対象のリストビュー内のいずれかのセルを設定します。リピーターの場合は対象のリピーターセルを設定します。空白の場合、[受け渡し先の列]で指定されたセルから、自動的に対象のリストビューを検出します。別のページのオプジェクトも、受け渡し先に設定できます。 |
列の関連付け定義を追加 |
クリックすると、受け渡す列の定義をリストに1行追加します。 ドロップダウンボタンをクリックして[受け渡し元の列をすべて追加]を選択すると、リストに受け渡し元の列をすべて追加します。 |
列の関連付け定義を削除 |
クリックすると、選択中の受け渡す列の定義を削除します。 ドロップダウンボタンをクリックして[すべて削除]を選択すると、受け渡す列の定義をすべて削除します。 |
すでに存在する行は更新しない |
本チェックオプションは、インポートモードが「マージ」、および「置き換え」の場合にのみ表示されます。本チェックオプションをチェックした場合、受け渡し先のリストビューにすでにその行が存在する場合(行の存在は「一意となる列」の値が同一であることが条件)、その行については一切の更新を行いません。 |
2つのテーブルを作成します。
各テーブルに、3つのテキストフィールドを作成し、片方のテーブルにデータを入力しておきます。
テーブル1
テーブル2
ページに2つのリストビューを配置して、手順1で作成したテーブルとデータ連結させておきます。
コマンド設定するために、ボタンを配置します。
以下のようなページに設定します。
手順2で配置したボタンを選択し、右ペインの[セル型]タブの[コマンド...]をクリックして「リストビューデータの受け渡し」コマンドを追加します。
次の図のように、受け渡し元のリストビューのどの列を、受け渡し先のリストビューのどの列に受け渡すのかを設定します。[インポートモード]が「マージ」、および「置き換え」の場合には、レコードを識別するための[一意となる列]を指定します。内部データベースのテーブルの場合、通常は「ID」フィールドを使用します。
ここではリストビュー1のすべての行をリストビュー2に受け渡し、マージ処理を行っています。
参考:
受け渡し元のリストビュー
コマンドを実装するページ上のリストビューである必要があります。
列の指定は、行テンプレート上のセル参照を設定します。
受け渡し先のリストビュー
同一ページだけでなく、別ページやポップアップウィンドウで開いたページにあるリストビューも指定できます。同一ページにない場合は、「リストビューデータの受け渡し」コマンドの次のコマンドで、「ページ遷移」や「ポップアップウィンドウの表示」、「ポップアップウィンドウの終了」を指定してください。
このとき、遷移先およびポップアップウィンドウのページの[ページロード時のコマンド]で、受け渡したデータを参照することはできません。これは受け渡したデータの反映にタイムラグがあるためです。
列の指定は、行テンプレート上のセル参照、もしくは列名で記載します。
[ホーム]リボンタブにあるデバッグの[開始]ボタンをクリックし、アプリケーションの動作を確認します。
実行した直後はテーブル1がデータ連結されているリストビューのみ値が表示されます。
ボタンをクリックすると、以下のようにテーブル2にデータ連結しているリストビューに「すべての行」の値がマージされます。今回の場合、何もレコードがないリストビューに対してマージしたため、動作は「追加」と変わりがありません。
参考:
内部データベースの場合、IDフィールドは各テーブルに自動的に作成され、レコードが書き込まれるタイミングで一意の連番が自動的に振られます。このためIDの値はコピーされません。
本コマンドによるデータの受け渡しは、リストビュー2の表示上でのみ追加されており、データ連結先のテーブル2に対する確定処理は含まれていません。テーブル2にデータを反映するには、本コマンドの実行後に[リストビューの操作]コマンドを使用する必要があります。
インポートモードが「マージ」、および「置き換え」の場合において、受け渡し先のリストビューに対象となる行が複数存在している場合([一意となる列]チェックオプションをチェックした列の値が一意となっていない場合)、該当するすべての行に対して更新が行われます。
注意:添付ファイルの保存方法について
添付ファイル型セル
画像アップロード型セル
テーブルの「添付ファイル」データ型フィールド
テーブルの「画像」データ型フィールド
上記データについて、データが受け渡される場合、更新が確定する際にファイルの実態はレコードの行数分複製され、別のGUIDが割り振られ、保存されます。