いつもお世話になっております。
ルックアップ:品名 ; 項目:ルックアップより取得
A項目:日付 ; B項目:A項目より年のみ抽出
☆やりたいこと:
他の計算欄もあって、ユーザーには、先に品名を選択させ、「項目」を埋めたいですが、ユーザーによっては、先にA項目を埋める人がいるので、以下のように制御可能かどうかアドバイス頂きたく投稿させていただきました。
理想な動き:もし先に「A項目」を埋めた場合、①「A項目」にエラーを出し⇒②「品名」を選を択させてから、いったん「A項目」をリセットし、⇒「A項目」を再度入力させる。
コードはちょっと挑戦してみましたが、②「A項目」をリセットさせるところがうまくできなくて、アドバイスいただけると幸いです。何卒よろしくお願い致します。
(function() {
'use strict';
var events = [
'app.record.edit.show',
'app.record.create.show',
'app.record.index.edit.show',
'app.record.detail.show',
"app.record.create.submit","app.record.edit.submit",
'app.record.edit.change.A項目',
'app.record.create.change.A項目',
'app.record.index.edit.change.A項目',];
kintone.events.on(events, function(event) {
var record = event.record;
var date = event.record['A項目']['value'];
if (!record["項目"].value && record["A項目"].value) {
record["A項目"].error = "品名を選択してから、入力してください!";
date === undefined;
}
// 日付が入力されていない場合
if (date === undefined) {
event.record['B項目']['value'] = '';
} else {
// 年-月-日の形式で入っているため、"-"で年に分割
var year = Number(date.split('-')[0]);
event.record['B項目']['value'] = String(year) ;
}
return event;
});
})();
こんにちは。
変数にしか適応されてないっぽいですね!
一行追加してみてください!
if(!record["項目"].value && record["A項目"].value) {
record["A項目"].error ="品名を選択してから、入力してください!";
date ===undefined;
record["A項目"].value = date; // 追加
}
nullならどうなりますか??
record["A項目"].value= null;
TK 様
いつもお世話になっております。
以下のようにしてみましたが、反応ありませんでした(汗)
if (!record["項目"].value && record["A項目"].value) {
record["A項目"].error = "品名を選択してから、入力してください!";
// date === undefined;
// event. record["A項目"].value = date; // 追加
record["A項目"].value = null;
}
いろいろ試していただいてすいません!
最初に貼っていただいたコードに、これを追加したらどうでしょうか?
kintone.events.on(["app.record.create.change.項目", "app.record.edit.change.項目"], function(event) {
const record = event.record;
if(record["品名"].value && record["項目"].value) {
record["A項目"].value = null;
record["A項目"].error = null;
}
return event;
});
TK 様
いつもお世話になっております。
再度アドバイス頂き、誠にありがとうございます。
頂いたコードでキャンセルはできましたが、品名をルックアップで取得後、A項目の入力ができなくなってしまいました。
あら、ほんとですか。。。
一応確認として、このコードでやってますがどうでしょうか?
(function() {
'use strict';
var events = [
'app.record.edit.show',
'app.record.create.show',
'app.record.index.edit.show',
'app.record.detail.show',
"app.record.create.submit","app.record.edit.submit",
'app.record.edit.change.A項目',
'app.record.create.change.A項目',
'app.record.index.edit.change.A項目',];
kintone.events.on(events, function(event) {
var record = event.record;
var date = event.record['A項目']['value'];
record.項目.disabled = false;
if (!record["項目"].value && record["A項目"].value) {
record["A項目"].error = "品名を選択してから、入力してください!";
date === undefined;
}
// 日付が入力されていない場合
if (date === undefined) {
event.record['B項目']['value'] = '';
} else {
// 年-月-日の形式で入っているため、"-"で年に分割
var year = Number(date.split('-')[0]);
event.record['B項目']['value'] = String(year) ;
}
return event;
});
kintone.events.on(["app.record.create.change.項目", "app.record.edit.change.項目"], function(event) {
const record = event.record;
if(record["品名"].value && record["項目"].value) {
record["A項目"].value = null;
record["A項目"].error = null;
}
return event;
});
})();
TK 様
いつも大変お世話になっております。
確認が遅くなって大変申し訳ございません。動きました!ご親切に教えていただき、誠にありがとうございます。
とても勉強になりました。今後ともどうぞよろしくお願い致します。
system
(system)
クローズされました:
10
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。