スポンサーリンク

【pleasanter】リンクとルックアップ④項目連携

プリザンター
スポンサーリンク
※当サイトは広告を含みます

※おことわり
2024年6月に書いたものをリライトしました。
2025年9月時点の情報です。プリザンターのバージョンは 1.4.18.1 です。Google Chrome でやっています。
javascript,html,cssともに初心者です。調べながら、やってみながら、きっとこうすればいいんだ!という感じで書いていますので、間違っている、または効率的な書き方ではない可能性が大いにあります。間違ってるよ!とか、こうしたほうがいいよ!ということがありましたら、コメント等で教えていただけると大変ありがたいです。

1.はじめに

前回まで、プリザンターのリンクとルックアップについてやってきました。

今回は、項目連携についてやります。

選択肢の設定でフィルタでやっていたようなものが、項目連携を設定すると、自動でできちゃう!しかも上位項目の選択に応じて動的に!GUIで設定するから、簡単にできるのでおすすめです!

2.プリザンターの項目連携とは

プリザンター公式マニュアルより

概要
「エディタ」の「分類項目」に親子関係を設定することができます。親の分類項目を選択した場合に子の分類項目の選択肢が自動で親の分類項目の選択した値に対応したものに切り替わるようにすることができます。

引用元:https://pleasanter.org/manual/table-management-column-relations

便利なので、よく使います。

親子関係のある2つ以上の「分類項目(プルダウン)」を連動させ、親で選んだ内容に応じて、子の選択肢を自動で絞り込む仕組みです。
例:親=都道府県、子=市区町村。東京都を選ぶと、市区町村には東京都内のものだけが出ます。

どんな時に便利かというと、
・マスタを段階的に選ばせたいとき(地方 → 都道府県 → 市区町村 など)
・製品カテゴリ → サブカテゴリ のように誤選択を減らして入力精度を上げたいとき。

3.使用するテーブル

典型的な例、でやってみます。

連結した「都道府県マスタ」「市区町村マスタ」を用意。

その親子関係にあるマスタ二つを、「店舗一覧」テーブルで利用します。

マスタテーブル

下図は項目連携を利用したテーブルのイメージです。

項目連携を設定しておくことにより、[都道府県]で「東京都」を選択すると、[市区町村]には東京都内の市区町村が選択肢として表示されます。

項目連携なしで、都道府県を選択した後、全国の市区町村からさらに対象の市を選択する。。。なんて、とても非効率で文句ブーブーいわれること必至。親切設計および間違い防止に項目連携はとても便利です。

4.項目連携のやり方

超簡単です!

1)項目連携を利用するテーブル「店舗テーブル」を用意します。

項目表示名備考
タイトル店舗名
分類A都道府県選択肢に[都道府県マスタ]をリンク
分類B市区町村選択肢に[市区町村マスタ]をリンク

分類A「都道府県」の選択肢欄に「都道府県マスタ」(サイトID:3566)をリンクさせます。
分類B「市区町村」の選択肢欄に「市区町村マスタ」(サイトID:72)をリンクさせます。

2)項目連携を設定します。

[エディタ]タブの下のほうに[項目連携の設定]があります。
「新規作成」をクリックし、設定していきます。

3)タイトルを設定し(なんでもいい)、連携させたいテーブル名を右から左に移動させ有効化します。

※項目の上下の並びも肝心です。
○○を設定すると、✖✖がきまる(✖✖の選択肢が絞り込みされる)の、○○が上で✖✖が下でないといけません。
この場合「都道府県」によって「市区町村」の範囲が決まるので、「都道府県」が上で「市区町村」が下です。

これで設定完了です!

■ 動作イメージ

なお、[都道府県]を選択していないと、[市区町村]は選択できません。

5.並べ替えやフィルタと同時使用

都道府県が北海道から並んでほしいので、選択肢欄でソートを設定します。
(ID順に並ぶと思ったんですどね。。。ならなかったので)
項目連携を使用していても、ソートの設定、フィルタの設定もできます。

フィルタ、ソートの設定については以下の記事で詳しくやっています。
【pleasanter】リンクとルックアップ②フィルタ、ソート

(1)並べ替えの設定

店舗テーブル [都道府県]の選択肢欄を以下のコードに書き換えます。

[
    {
        "SiteId": 3566,
        "View": {
            "ColumnSorterHash":{
                "ResultId":"asc"
            }
        }
    }
]

(2)フィルタの設定

フィルタもやってみます。

親テーブルの[都道府県]テーブルにチェック項目を設け、表示名を「選択対象」とします。
「東京都」「神奈川県」「千葉県」「埼玉県」レコードにチェックを入れます。

子テーブルの店舗テーブル [都道府県]の選択肢欄を以下のコードに書き換えます。

[
    {
        "SiteId": 3566,
        "View": {
            "ColumnSorterHash":{
                "ResultId":"asc"
            },
            "ColumnFilterHash": {
                "CheckA":"true"
            }
        }
    }
]

選択肢には、チェックをオンにした都道府県だけに絞り込まれていることが確認できます。

6.フィルタでも項目連携を利用できる

フィルタでも項目連携が利用できるんです。

[フィルタ]タブの下のほうに「項目連携を使用する」がありますので、ここのチェックをオンにします。

すると

ただですね。ちょっと「あれ?」と思ったのは、都道府県を選択せず、いきなり市区町村だけでフィルタすると一瞬フィルタされてぱっと元に戻っちゃう現象が起きました。フィルタで「項目連携を利用する」を適用すると親のほうを選択してからでないとこのフィルタを指定しても、フィルタが効かない状態になるのかもしれません。ものによっては逆に不便になるかもしれません。使いよう、ですね。

7.多重の項目連携

項目連携は3つ以上のテーブルでも行うことができます。
※ただし、やりすぎるとパフォーマンスに影響が出るみたいです。

「都道府県マスタ」の上位のテーブル「地方区分マスタ」を作成し、「地方区分マスタ」⇒「都道府県マスタ」⇒「市区町村マスタ」とリンクさせます。

今度は、「店舗テーブル」で項目を追加し、追加した分類項目に「地方区分」のID 8901 を入力し、リンクさせます。
そうすると、項目連携に追加することができるようになります。
「エディタ」タブの下部「項目連携」に3つの項目「地方区分」「都道府県」「市区町村」をセットします。
※この時項目の並びが上位から並ぶように注意!

3つの項目連携が完成しました!

8.2か所での項目連携

「親テーブル1つに対して子テーブルが2つ」= 1つの選択に応じて、別々のテーブルの項目が連携されるケース もできます!

例:商品カテゴリを選択 ⇒ カテゴリに紐づく商品、カテゴリに紐づく仕入先 が選択肢に表示される

分類項目に3つの親テーブルをリンクさせた項目を設定します。
項目連携の設定を2つ行います。
一つは「カテゴリ」→「商品」、もう一つは「カテゴリ」→「仕入先」

カテゴリを選択すると、カテゴリに応じた「商品」および「仕入先」が選択肢に表示されます。

9.さいごに

項目連携の推しポイントは、なんといっても「簡単」さと「便利」さ。複雑な設定なしに、入力の手間も間違いも減らせます!ぜひつかってみましょう!

10.参考文献、記事

プリザンター公式サイトより

テーブルの管理:エディタ:項目連携
テーブルの管理:フィルタ:項目連携
テーブル機能:レコードの一括更新
Wiki機能:選択肢一覧のマスタデータとして使用する

内部リンク

リンクとルックアップシリーズ
【pleasanter】リンクとルックアップ①リンクの基本
【pleasanter】リンクとルックアップ②フィルタ、ソート
【pleasanter】リンクとルックアップ③ルックアップ
【pleasanter】リンクとルックアップ④項目連携

その他
【pleasanter】テーブル間のリンクとプルダウンリスト~項目間の連携~
【pleasanter】テーブル間のリンクとプルダウンリスト~Sort、Filter~
【pleasanter】wikiってなんだ?
【pleasanter】$p.apiGetをやってみた~単一レコードの取得
【pleasanter】$p.apiGetをやってみた~複数データを取得してプルダウンリストを作成する
【pleasanter】フィルタについてあれこれやってみた

もう読みました?プリザンターの概要、インストール方法から基本操作方法、導入事例、サンプル等役に立つ情報が満載!

コメント

タイトルとURLをコピーしました