グリッドをリストとして表示
グリッドを参照し、それを別のタブにリストとして表示することができます。ただし、これを正しく行うには、Marketing Operations でグリッドを保管する方法を理解している必要があります。
*
*
したがって、例えば、同じテンプレートから 2 つのプロジェクトを作成した場合、両方のプロジェクト内の対応するグリッドによって追加される行は、同じデータベース・テーブルに追加されますが、各プロジェクトのグリッドからアクセスできるのは、その所有するデータだけです。
これを行うには、グリッド・データを保持するデータベース・テーブルに、2 つの列 (1 つは行を一意に識別するもの、もう 1 つは親 ID (グリッドが含まれているプロジェクトまたはマーケティング・オブジェクトの ID) を識別するもの) がなければなりません。
グリッド・テーブルに設定するキー列 (グリッドのデータを保持する TVC コンポーネントを追加する場合) には、行の親 ID が保持されます。単一のグリッドでは、すべての行でこの列の値が同じものになっています。このため、これによりデータの行を一意に識別することはできません。
フォーム・エディターにより、グリッドごとに uap_grid_row_id という列が自動生成されます。リスト・ビューで必要になるのは、行を一意に識別する列だけです。したがって、リスト・ビューでグリッドと同じテーブルを使用する場合は、グリッド・データ・テーブルを指定したときに指定したキー列ではなく、uap_grid_row_id をキー列として指定する必要があります。
説明すると、以下の例のようになります。
*
*
*
*
これら 2 つのグリッドのデータを保持するデータベース・テーブルは、次のようなものになります。
object_id、uap_grid_row_id、manager、emp_id、emp_name、および salary の各列が含まれるテーブル
最初の数行は TRS001 のグリッドに属しています。最後の数行は TRS002 のグリッドに属しています。
各プロジェクトでは、その所有する部分のデータのみがこのテーブルに表示されます。ただし、このテーブルを参照に使用するリストがある場合、そのリストには、以下のようにテーブルのすべての行が表示されます。
Employee ID、Name、Base Pay、および Manager の各列が含まれるグリッド
列名 uap_grid_row_id は予約されているため、グリッドの列を作成するときは、これを列名として使用しないでください。
リストをフィルターして、その所有オブジェクト (プロジェクトまたはマーケティング・オブジェクト) のグリッド・エントリーだけが表示されるようにすることができます。前述の例の続きで、以下の 2 つのタブを持つプロジェクトを作成します。
*
スタッフ・フォーム (Staff Form): スタッフのメンバーの入力と編集に使用するグリッドが含まれます。
*
スタッフ・リスト (Staff List):「スタッフ・フォーム (Staff Form)」グリッドからのエントリーがリストとして表示されます。
現行プロジェクトからのエントリーだけがリストに表示されるようにするには、リストの親 ID にフィルターを適用します。
リストの TVC コンポーネントを作成する場合は、以下の値を設定します。
*
親 ID でフィルター: 選択されています
*
親 ID 列: object_id (この例で先に示したデータベース・テーブルを参照してください)。この値は、グリッドの TVC コンポーネントの「テーブル・キー列」の値に一致していなければなりません。