お世話になっております。
こちらを参考にJSを書いたのですがタイトルにもある通りサブテーブルをグループの中に入れられずに困っております。
コンソールで確認したところ undefined と出ており定義されていないことはわかったのですが自力での解決に至りませんでした。
(フィールドコード)
サブテーブル→ビルテーブル
スペース→space
(使用したコード)
(function() {
'use strict';
kintone.events.on('app.record.detail.show', function(event) {
//サブテーブルのIDを取得(引数はサブテーブルのフィールドコード)
var id = subTableIDRtn("ビルテーブル");///サブテーブルのフィールドコード
//IDを元にサブテーブルのエレメントを検索
var subTableElement = $("subteble-" + id).get(0);///サブテーブルのフィールドコード
//スペースのエレメントを取得
var spaceElement = kintone.app.record.getSpaceElement('tablespace');///スペースのフィールドコード
//スペースにサブテーブルを挿入
spaceElement.append(subTableElement);
function subTableIDRtn(fieldCode) {
var subTableObj = {};
var subTableList = cybozu.data.page.SCHEMA_DATA.subTable;
for(var i in subTableList) {
if(subTableList[i].var == fieldCode) {
var subTableObj = subTableList[i];
break;
}
}
return subTableObj ? subTableObj.id : undefined;
}
});
})();
nekoko 様
こんにちは。
最初と記述が少し変わっているので、もう問題は解決されましたでしょうか?
問題が解決しているようであれば、以下は読まなくても良いかと思います。
おそらくですが、問題が起きている個所は8行目ではないかと思っています。
ライブラリで jQuery が利用されているのではと思っています。
そうすると、上記のプログラムの前に jQuery のライブラリを先に読み込む必要があるかと思います。
ただ、その一行の為にjQuery等のライブラリを読み込むのは個人的にはよくないかと思いますので、
document.querySelector に変更されて利用された方がよいかと思います。
変更内容を記述すると
var subTableElement = document.querySelector(`.subteble-${id}`);
というような記述になるかと思います。
こちらに変更されますと、特に新たにライブラリの読み込みなどはせず利用できるかと思います。
また上記の最初の内容を少し変更した内容ですので、まだ微妙にバグがあるままです。
また、イベントタイミングが ‘app.record.detail.show’ この時のみでよいのであればシンプルな記述もすることができます。
(function () {
"use strict";
kintone.events.on("app.record.detail.show", function (event) {
const subtable = kintone.app.record.getFieldElement("sutableFiledCode"); // ()の中にサブテーブルフィールドコードを入れる
kintone.app.record.getSpaceElement("spaceFiledCode").append(subtable); // getSpaceElement の()の中にスペースフィールドコードを入れる
});
})();
このような内容で、最初と同じ結果は得られると思います。
ただ同じバグがありますので、バグを修正されるようでしたら最初の記述を変更していくしかないかと思います。
「いいね!」 1
新屋 育男様
こんにちは、お世話になっております。
返信遅くなってしまい申し訳ございません。
最初と記述が変わっているのは記述していたコードが違っていたためです。
コードのご提示ありがとうございます。
jQueryのライブラリを読み込む必要があったのですね。
ご提示して頂いたコードを運用してみたところバグは特に気にならなかったのでこのまま運用していこうと思います。
system
(system)
クローズされました:
4
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。