サブテーブル内のルックアップに値をコピー後に自動取得を行いたい

現在以下の条件でタイトルのようなことをしようと実装中なのですが

うまく動作しません。お知恵をお借りしたいです。

 

[環境]

・同一アプリ内

・サブテーブルTable_商品(ルックアップ「商品名」を配置)

・サブテーブルTable_発注(ルックアップ「発注商品名」を配置)

 

[実現したいこと]

サブテーブルTable_商品のルックアップ「商品名」の値を

同一アプリ内のサブテーブルTable_発注の

ルックアップ「発注商品名」にコピーして

サブテーブルTable_発注のルックアップ「発注商品名」

を自動取得させたい

 

[問題点]

1.自動取得xxxx.lookup='true’をどの個所にどのように記述してよいかわからない(いろいろ試しましたがとん挫)

2.コピー先Table_発注商品の2行目以降のルックアップのフィールド幅が狭くなってコピーされる

 

[ソース]

(function() {
“use strict”;
kintone.events.on([“app.record.create.show”, “app.record.edit.show”], function(e) {

// 任意のスペースフィールドにボタンを設置
var mySpaceFieldButton = document.createElement(‘button’);
mySpaceFieldButton.id = ‘btn_copy’;
mySpaceFieldButton.innerText = ‘見積から発注商品をコピー’;
mySpaceFieldButton.onclick = addRow;
kintone.app.record.getSpaceElement(‘btn_copy_space’).appendChild(mySpaceFieldButton);

});

// 行追加関数
function addRow() {

//レコード取得
const record = kintone.app.record.get().record;

//発注テーブルをクリア
record.Table_発注商品.value = [];

//サブテーブルオブジェクトを取得
var tableRecords = record.Table_商品.value;

var tableRecords2 = record.Table_発注商品.value;

//元のテーブルをループ
for (var i = 0; i < tableRecords.length; i++) {

//各値の取得
const item = tableRecords[i].value[‘商品名’].value;

record.Table_発注商品.value.push({
value: {
“発注商品名”: {
value: item,
type: ‘SINGLE_LINE_TEXT’,
}
}
});

//tableRecords2[i][‘発注商品名’].lookup = true;

//↑ここだとコピーすら動かなかった

}
kintone.app.record.set({record: record});

}

})();

 

 

自己レスです

>>2.コピー先Table_発注商品の2行目以降のルックアップのフィールド幅が狭くなってコピーされる
は、今確認すると何もしていませんが正常な列幅になっていました?!

 

>>1.自動取得xxxx.lookup='true’をどの個所にどのように記述してよいかわからない(いろいろ試しましたがとん挫)

こちらをご教授いただけませんでしょうか。

こんにちは。

サブテーブルへの挿入でルックアップを取得させたい場合は

record.Table_発注商品.value.push({

value: {

“発注商品名”: {

value: item,

type: ‘SINGLE_LINE_TEXT’,

lookup: true

}

}

こんな感じで、lookup:ture をいれてあげれば、動くはずです。

 

 

上海レンユアー 松村さん

ありがとうございます。m(__)m

教えていただいた記述で自動読み込みできました。

再度自己レスです。

>>2.コピー先Table_発注商品の2行目以降のルックアップのフィールド幅が狭くなってコピーされる
は、今確認すると何もしていませんが正常な列幅になっていました?!

 

と以前記述したのですが、本日確認すると以前のようになっていました

前回確認で正常となったのは以下のオペレーションでの結果のようで勘違いでした

テーブル追加時に列幅のパラメーター渡す必要があるのでしょうか

 

1.ボタンで項目コピー←この時は、列幅が狭くなっている(下記添付画像状態)

2.1のまま保存し再度編集で開くと列幅は正常になっている

 

 

 

その現象は出会ったことがありませんね。サブテーブルへの行追加で列幅のパラメータもなかったはずです。

切り分けとしては、以下の様な手順かなと。

1)ブラウザ変えて試してみて、現象の確認。

2)何かしら他のJSやCSSでサブテーブルの列幅をいじっていませんか。なにかそこにカスタマイズをいれている場合は、

頂いた図の様な現象が起きる可能性はあるかなと思います。

お世話になります。

アドバイスいただいた1を試しましたが現象が改善されませんでした

2は確かにCSS使っていたのでいったん外してみましたが同様でした。

 

有料のプラグインを利用しているので、そちらの影響かもしれません。

一度プラグインを外して確認してみます。

なるほど、一度プラグインを外してみて頂くといいかもしれませんね。

尚、JSでサブテーブルに行を追加した場合、普通に[+]を押して、行を追加したときのイベントが走らなかったと思うので、その影響かもしれません。

なので、画面表示が変になったあとに、試しに[+]で行追加をしたら、正常レイアウトになったりするかもしれません。