一覧での編集画面でドロップダウンのセル内容を書き換えたい

一覧画面から一覧の編集画面(app.record.index.edit.showやapp.record.index.edit.change.~)で登録されている他のカラムの情報や、選択された他のドロップダウンに応じてドロップダウンの要素を書き換えたいのですが、こちらevent.recordやkintone.app.recordの戻り値に対してgetFieldElementを使ってinnnerHTMLで書き換えようとしてもエラーになるか、書き換えることができません。

こちらについて何かいい方法などありましたら教えてください。

 

岡 隆史様

お世話になっております。

サイボウズスタートアップスの江田と申します。

ドロップダウンの選択肢をもともとすべて用意しておいて、条件によって表示非表示を切り替えてみてはいかがでしょうか?

(function() {
"use strict";
kintone.events.on(['app.record.index.edit.show', 'app.record.index.edit.change.ラジオボタン'], function(event) {
var record = event.record;
if(record['ラジオボタン'].value === "選択肢A"){
$("ul.gaia-argoui-selectmenu.gaia-argoui-selectmenu-vertical .goog-menuitem.goog-option:nth-child(2)").show();
$("ul.gaia-argoui-selectmenu.gaia-argoui-selectmenu-vertical .goog-menuitem.goog-option:nth-child(3)").hide();
}else{
$("ul.gaia-argoui-selectmenu.gaia-argoui-selectmenu-vertical .goog-menuitem.goog-option:nth-child(3)").show();
$("ul.gaia-argoui-selectmenu.gaia-argoui-selectmenu-vertical .goog-menuitem.goog-option:nth-child(2)").hide();
}
});
})();

*サンプルではjQueryを利用しております。

回答ありがとうございます。

しかしながら、実際に実装される部分は条件分岐が複雑で(大項目の選択によって中項目が変化、中項目の選択によって小項目が変化、左記組み合わせ

によってテキストカラムの内容が変化)、また別アプリケーションからロードした内容を反映させる予定なため、この方法の採用は難しいです。

詳細画面においては、スペースを作成して詳細画面表示時にドロップボックスを削除し、スペースに大項目に紐づく中項目や中項目に紐づく小項目

のソースを書き出すという方法をとって実現できており、一覧画面でもエディット画面やドロップボックスを変更させた際に何かスペースのような

ものを表示させてそこにドロップボックスを作成する方法ができないかと考えておりますが、これは可能でしょうか?

また、サンプルページ(https://developer.cybozu.io/hc/ja/articles/202166270-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E7%B7%A8%E9%9B%86%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88)

を見ると、event.record[‘Table’]で取得した値にエラーメッセージを表示する、という方法を行なっているのでこれが利用できないか?とも考えておりますが、これは可能でしょうか?

 

よろしくお願いいたします。

岡様

入力状況などによって選択項目が変わるようなものであれば、スペースフィールドに新たにドロップダウンを作った方がいい気がしますが、いかがでしょうか。

フォームの構成そのものをいじってしまうと、同時に使用している他のユーザーにも影響が出てしまいますよね。。。

milkyway0307様

はい、私もテーブル一覧にスペースフィールドを差し込み大・中・小のドロップダウンを作成するという方法も考えており、実際に詳細画面ではその方法でそれぞれに紐づいた情報が表示されることを再現しております。( kintone.app.record.getSpaceElement(‘space_field名’);で取得して、 appendChildやinnerHTMLで記述ですよね?)

しかしながら、一覧画面の編集画面(app.record.index.edit.showやapp.record.index.edit.change.~)にスペースフィールドを差し込む、あるいは表示させる方法がわかりません。

アプリの設定で、フォームでスペースフィールドを作成しても、一覧には該当するスペースフィールドが表示されない(一覧の表示項目として選択できない)ようなのですが、いかがでしょう?

よろしくお願いいたします。

岡様
一覧画面であれば、ごっそりカスタマイズビューで制作してみてはいかがでしょうか。
そうすればカスタマイズ可能だと思いますが。