MMM
(枩山)
1
社内で利用しているkintoneのカスタマイズを任されているのですが、独学で日々その場その場で調べながら進めています。私の検索の仕方が悪いのか、調べてもなかなか知りたい情報に辿りつけませんでしたので、こちらに投稿させていただきます。
「各品目」というテーブルを設け、その中に「単価」「数量」「単位」というフィールドを作りました。ある条件下ではこれら3つのフィールドに入力された値は削除したいのです。
条件分岐で条件を設定するところまでは良いのですが、一番簡単で基本的と思われる「フィールドの値を消す」というコードがうまく動きません。
event.record.各品目.value[i].value.単価.value = undefined;
event.record.各品目.value[i].value.単位.value = undefined;
event.record.各品目.value[i].value.数量.value = undefined;
「 レコード編集画面(レコード追加画面)を表示した後のイベント」だと思った通りに動作するのですが、「レコード編集画面(レコード追加画面)でフィールドの値を変更したときのイベント」だと動きません。
console.logで見てみると、データ上は書き変わっているようなのですが、こちらとしてはフィールドの見た目も変わってほしいです。
間違っている点、対応策などご教示いただけますと幸いです。
mura
2
「 レコード編集画面(レコード追加画面)を表示した後のイベント」だと思った通りに動作するのですが、「レコード編集画面(レコード追加画面)でフィールドの値を変更したときのイベント」だと動きません。
この部分きになりますね、valueにundefinedを指定すること自体は良さそうですが、他のコードで問題になってる可能性がありますので、全体・該当のイベントハンドラのコードをはってもらったほうがよさそうです。
「いいね!」 1
MMM
(枩山)
3
mura様
ご回答ありがとうございます。
判断材料が不足していた点、大変失礼いたしました。
現状問題となっているコードが以下の通りです。
(function() {
'use strict';
kintone.events.on(['app.record.create.change.商品名','app.record.edit.change.商品名','app.record.create.change.単価','app.record.edit.change.単価','app.record.create.change.数量','app.record.edit.change.数量','app.record.create.change.単位','app.record.edit.change.単位'], function(event){
const record = event.record;
var NumberOfLines = record.各品目.value.length;
for (var i = 0; i < NumberOfLines; i++) {
var ProductCode = record.各品目.value[i].value.商品コード.value;
if(ProductCode == undefined&&(record.各品目.value[i].value.単価.value||record.各品目.value[i].value.単位.value||record.各品目.value[i].value.数量.value)){
record.各品目.value[i].value.単価.value = undefined;
record.各品目.value[i].value.単位.value = undefined;
record.各品目.value[i].value.数量.value = undefined;
}else{
}
}
});
})();
どの部分が間違っているのか自分の調査だけでは分からず、ぜひご教示いただけますと幸いです。
何卒よろしくお願いいたします。
@MMM さん 、@mura さん
こんにちは、横やり申し訳ないです…どうしても言いたかったので…
貼っていただいたコードですが、単純に return event;
されていないから値が更新されていないんじゃないかなと思います
「いいね!」 2
mura
5
ですねw
イベントハンドラにおいて値を書き換えたい場合は return event
をする必要があります!
「いいね!」 2
MMM
(枩山)
6
mura様、Yuki_Minamitani様
ご指摘の箇所、return eventを挿入したところ無事意図した動作を完了することができました。
この度はこのような愚問にお答えいただき、感謝いたします。
誠にありがとうございます!
「いいね!」 2
system
(system)
クローズされました:
7
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。