新規投稿
フォローする

resetRowNo is not defined

いつもお世話になります。

タイトルのエラーメッセージが出力されるのですが、どこでresetRowNo を

定義すればよろしいのでしょうか?

0

6件のコメント

Avatar
あさが

こんにちは。

カスタマイズされたJavaScript内でのエラーかと思いますので、現状のソースを貼って頂くのが良いかと思います。

0
Avatar
村井 芳久

あさが様

お世話になります。

早速のコメントありがとうございます。

質問の件は解決したのですが、改めて質問させてください。

サブテーブルにルックアップのフィールドが含まれていて

数量が”ゼロ”の行は削除されております。

アプリで保存を実行すると、1行目は

「参照先からデータが取得されました。」

2行目以降の行について

「[取得]を押し、参照先からデータを取得してください。」のメッセージが

ルックアップのフィールドで出力されてしまいます。

対処方法をアドバイスいただけますでしょうか

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

 

 

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

// 受注確定ボタンを設置
const deleteSpace = kintone.app.record.getHeaderMenuSpaceElement('deleteSpace');
const deleteButton = document.createElement('button');
deleteButton.innerHTML = '受注確定';
deleteButton.onclick = deleteRow;
deleteSpace.appendChild(deleteButton);
});


// 行削除関数
function deleteRow() {
const record = kintone.app.record.get().record;
const subtablevalue = record.Table_1.value
console.log(subtablevalue)
for (let i = 0; i < subtablevalue.length; i++){
record.Table_1.value.forEach(function(row, i) {
if (row.value.数量.value === '0') {
record.Table_1.value.splice(i, 1);
}
});
}
resetRowNo(record);
kintone.app.record.set({record: record});
}

// 行番号更新関数
function resetRowNo(record) {
record.Table_1.value.forEach(function(row, i) {
row.value.行番号.value = i + 1;
});
}
})();

0
Avatar
あさが

村井様

お世話になります。

現象発生時の状況が分からないのですが、どのような操作をした時にメッセージが表示されるのでしょうか?

 

0
Avatar
村井 芳久

 

 あさが様

 お世話になります。

 背景説明が不足しており申し訳ありません。

 受注入力をするために、メーカコードをキーにして取扱い製品一覧を下図のように

 サブテーブルを表示します。

 

 次に注文があった製品だけ数量に入力を行います。

 次に先ほどお送りしたスクリプトで表示した「受注確定」ボタンをクリックし、数量がゼロの行を削除した

 サブテーブルを表示させると下図のようになりますが

保存ボタンをクリックすると、下図のようになります。

 

 ちなみに、1~5行の商品リストがあり、1、2行目を残し、3~5行目を削除した場合はエラーとなりませんが、1、3行目を残し、2、4~5行目を削除した場合に不具合が発生します。

 このような説明でよろしいでしょうか?よろしくお願いいたします。

0
Avatar
あさが

こんにちは。

以前に同じような現象を確認した事があるのですが、いまいち挙動が掴めませんでした。

> ちなみに、1~5行の商品リストがあり、1、2行目を残し、3~5行目を削除した場合はエラーとなりませんが、1、3行目を残し、2、4~5行目を削除した場合に不具合が発生します。

↑このように、何をもって再取得が必要と判断しているのかが不明な感じでした。

 

解決するか分かりませんが、対処方法として考えられそうなのは、

① deleteRow()で行を消すのでは無く、テーブルの「-」ボタンをJavaScriptからクリックして消すように変える

② deleteRow()で行を消した後に、全明細に対してルックアップを再実行する

あたりでしょうか。(実現できるところまで確認したわけではありません)

 

1
Avatar
村井 芳久

あさが様

早速のコメントありがとうございます。

①で対応してみようと思います!もし手順がわからなければ改めて質問させていただきます。

ありがとうございました。

0
ログインしてコメントを残してください。