あるフィールドの値は可変するように作っております。
ユーザーから「最初に登録した値」がわかるのか?と質問を受けてしまいました。
更新履歴から値が取れればいいのですが、それはできないといういう認識です。
なにか良案はございませんか?
乱暴なやり方としては、
新規作成時に対象のフィールドに入った値と同じ値を「別のフィールド」へコピーし、
そのあと、編集不可で保存し続けられないかと考えています。
ポイントは新規作成時にのみ上記を実施することにより、更新時などにはその「別のフィールド」への書き込み等を行わないようにしたいです。
こんなことができるのか、どんなプログラムになるのかも想像ができなく、
ここに投稿し、ヒントを得たいと思っております。
よろしくお願いいたします。
s_yaha さん
>新規作成時に対象のフィールドに入った値と同じ値を「別のフィールド」へコピーし、
この処理を JavaScript で行います。
レコード追加時のイベント処理で「別のフィールド」へコピーします。
ついでに、「最初に登録した有効な値」も設定してみます。
こちらは、レコード追加・編集時に処理します。
項目は、すべて文字列だとしています。
フィールドコードは、対象アプリに合わせてください。
(function() {
"use strict";
// フィールド編集不可
kintone.events.on(["app.record.create.show","app.record.edit.show","app.record.index.edit.show"], function(event) {
var record = event.record;
record['別のフィールド'].disabled = true;
record['別のフィールド2'].disabled = true;
return event;
});
// レコード追加時の値
kintone.events.on("app.record.create.submit", function(event) {
var record = event.record;
record['別のフィールド'].value = record['元のフィールド'].value;
return event;
});
// 最初に登録した有効な値
kintone.events.on(["app.record.create.submit","app.record.edit.submit","app.record.index.edit.submit"], function(event) {
var record = event.record;
if (!record['別のフィールド2'].value && record['元のフィールド'].value)
record['別のフィールド2'].value = record['元のフィールド'].value;
return event;
});
})();
ご回答ありがとうございます。
どうしても解読不能なものがありますので再度ご教授願えれば助かります。。。
if (!record['別のフィールド2'].value && record['元のフィールド'].value)
ここでの条件の意味がわかりません。
.value について値の確認をしていると思いますが、
=なりの条件式がありません。
この状況下で対象行がなにをしているのか、私には理解できていません。
最終的に別のフィールド2に「有効な値が入ったときに入る値が反映される」という認識ですが、大丈夫でしょうか。
引き続きお願いしたく、、、
kintoneでJavaScriptを書くときに気をつけるべき空判定の知識 が参考になると思います。
>最終的に別のフィールド2に「有効な値が入ったときに入る値が反映される」という認識ですが、大丈夫でしょうか。
OKです。