以下4つのkintoneアプリを作り、Mainアプリのレコード追加画面(app.record.create.show)とレコード編集画面(app.record.edit.show)で「地方」⇒「都道府県」⇒「市区町村」という絞り込み検索をプラグイン無しでjavascriptで実装します。
promiseではないです。あしからず・・・。そのうちやります。
上記のMainアプリで他のkintoneアプリから各種マスタデータを取得して、絞り込み検索を行うjavascriptのサンプルがググっても少ないので作ってみました。cybozu developer networkにもサンプルコードは有りますが、地方リストや都道府県リストがjavascriptファイルの中でハードコーディングされており、他アプリからフィールドの値を取得して絞り込み検索を行う王道パターンのサンプルコードが少ないです。開発しにくさを感じている方も多いのではないでしょうか。Mainアプリのレコード追加画面で以下の様な絞り込み検索をjavascriptで作ります。
Mainアプリを以下のフィールドコードでつくります。Mainアプリのフィールドと地方アプリなどのフィールドを区別するために、わざとMainアプリのフィールドに接尾辞『_Main』を付けています。コードを後から読む際に解読しやすいです。
Mainアプリのフォームの中に作るスペースです。3つ作ってください。kintone UI Componentのドロップダウンを表示させるために使います。
アプリ名は「地方」として、以下のフィールドコードを作ります。
アプリ名は、都道府県として以下のフィールドコードを作ります。
アプリ名は、市区町村として以下のフィールドコードを作ります。
以下のgithubより6つのファイルをダウンロードしてください。
https://github.com/Masamasamasashito/kintone-drilldown-search-v2
4つのkintoneアプリのアプリIDをメモします。アプリIDはkintoneの各アプリの画面でURLを見て確認出来ます。
drill-down.js のファイルを開き、赤下線部分のアプリIDの4つを先ほどのメモを見ながらすべて書き換えて上書き保存してください。
※上記、24行目から29行目の hidden Main App fields をコメントアウトすると、ソースコード解読をしやすくなります。
地方.csv、都道府県.csv、市区町村.csv それぞれを地方アプリ、都道府県アプリ、市区町村アプリで読み込みます。
Mainアプリで kintone-ui-component.min.js、dril-down.js、kintone-ui-component.min.cssを以下の様にアップロードします。drill-down.jsはアプリIDを書き換えてアップロードしてください。画面左上の青い「保存」ボタンをクリック⇒画面右上の青い「アプリを更新」ボタンをクリック。Dropboxにソースコードファイルを置いて、ローカルgitと同期してドロップボックスのURLでkintoneにJavascript/cssファイルを適用すると便利です。
以上で完了です。Mainアプリで絞り込み検索が実装出来ている事を確認してみてください。「レコード一覧画面」の「編集」は使えない様にするといいかもしれません。
※kintone APIによるレコード取得数の上限にご注意ください。上限に達した場合、再帰呼出しや kintone js SDK をご利用ください。Kintone Utility for JavaScriptは廃止予定との事ですのでご注意ください。
絞り込み検索の実装に悩んでいる方、この記事の通りに作ってフィールド名を書き換えれば、3段階であればなんとかなりますよ!