ドロップダウンで選択できるデータをフィールドから取得したい

 担当者様

ドロップダウンで選択する項目を、

別アプリの特定フィールドにあるデータと同じにしたいのですが、

どうすれば実現できますでしょうか?

フィールドを見るアプリのレコードには閲覧権限をかけることで、

ドロップダウンを実行する人によって、

ドロップダウンに表示される内容を変更したいと思っています。

 

人によってドロップダウンの情報を替えられるのであれば、

上記手法以外でも問題ないのですが、

情報をいただけませんでしょうか?

 

もしご教授いただける場合、

javascriptでのkintone拡張は知識がないため、

お手柔らかに教えていただけると幸いです。

上記案件について、フィールドは列という認識で話しています。

例で言うと、

「アプリ1」と「アプリ2(後で例を記載)」があったとして、

Bさんが「アプリ1」のドロップダウンを選択した時、

ドロップダウンの内容は「アプリ2」の内容より「りんご」と「メロン」にしたいです。

 

アプリ2のレコード閲覧権限でBさんはBさんのデータしか見られないようにしておくと、

「ドロップダウンの内容をフィールドにする」ことが出来れば、

実現可能であると考えております。

 

【アプリ2】

Aさん りんご

Aさん いちご

Bさん りんご

Bさん メロン

Cさん メロン

kawamuraさん、こんにちは。

ドロップダウンの選択肢を動的に制御するのは、JavaScriptカスタマイズ初心者には結構難しいと思います。

標準のルックアップ機能を使ってみてはどうでしょうか?
こちらで詳しく解説されています。
https://developer.cybozu.io/hc/ja/community/posts/115010856426

 たまごさん、こんにちは。

標準のルックアップは検討させていただいたのですが、

対応できなさそうです。

どのようなコードを書けば実現できるのか、何かご存知でしたら、

難しくてもよいので、教えていただけませんでしょうか?

サンプルになりそうなコードは手元にないので、考え方だけお伝えします。

  1. フォームにスペースフィールドと文字列1行フィールドを配置
  2. レコード追加画面/編集画面の表示イベントに下記の処理を入れる
    ・文字列1行フィールドを非表示にする(値の保存用なのでこのタイミングは見せない)
    ・スペースフィールドの要素を取得し、その要素にセレクトボックスを追加
    ・セレクトボックスの選択肢(option)に別アプリから取得した値をセット
  3. レコード追加画面/編集画面の保存実行前イベントで、セレクトボックスの選択値を文字列1行フィールドに入れる

kintoneのドロップダウンフィールドで、条件に合わせて選択肢を変更するということはできません。
レコード追加・編集時にselectタグなどを使って選択用の要素を表示し、それをドロップダウンの代わりに使います。
セレクトボックスの見た目をkintoneっぽくするには51-modern-default.cssが使えます。
(selectタグを使うのではなく、kintone UI Componentを使っても良いかもしれません。)

このままだとセレクトボックスでユーザーが選んだ値をレコードに保存できないので、保存用の文字列1行フィールドを用意しておき、
保存処理のときにselectタグで選択された値を保存用フィールドに保存してください。

 

スペースフィールドに要素追加する例はチュートリアルのボタン設置が参考になります。
フィールドの表示/非表示切替はこちら
別アプリからの値取得はクエリ指定の一括取得で、
保存用フィールドへの値セットはイベントのフィールド値書き換えで出来ます。

ぜひがんばってみてください!

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。