お世話になっております。
レコードの詳細画面を開いた際に、
ルックアップフィールドへの自動入力→他フィールドにコピーされた値を参照→
コピーされた値をもとに計算フィールドで自動計算
といったことを行いたいのですが、app.record.create.show、app.record.edit.showと同じ方法ではうまくいなかなったため、問い合わせていただきました。
イメージとしましては、画面を開いた際にルックアップフィールドの「売上締日区分」に値が入り、
隣の「締日」にコピーした日付が入ります。
そのコピーした日付に1日追加した結果が「売上登録可能日」(計算フィールド)に表示されるようにしたいです。
※添付のスクショを参考にしていただけますと幸いです。
尚、レコード作成時、編集時は以下の方法でうまくいっております。
- (function() {
- ‘use strict’;
- kintone.events.on([‘app.record.create.show’,‘app.record.edit.show’], function(event) {
- var record = event.record;
-
- record[‘ルックアップ’].value = ‘TK’;
- record[‘ルックアップ’].lookup = true;
- return event;
- });
- })();
お手数をおかけし申し訳ございませんが、ご教示いただけますと幸いです。
yamanakaさん
こんにちは。イメージされている処理に合っているか分かりませんが、
レコード詳細画面では、event.recordで値の変更ができませんので、REST APIでPUT処理を行う必要があります。
// レコード詳細画面表示時
kintone.events.on('app.record.detail.show', function(event) {
var record = event.record;
var body = {
'app': event.appId,
'id': event.recordId,
'record': {
'売上締日区分': {
'value': record.売上締日区分.value
}
}
};
kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body, function(resp) {
console.log(resp);
}, function(error) {
console.log(error);
});
});
上記処理で、レコード詳細画面を開いたタイミングで、そのレコードの「売上締日区分」を更新し、
ルックアップ再取得=締日の再取得となります。計算フィールドもそれに応じて自動的に変わります。
yamanakaさん
補足です。
上記処理の後、レコードを手動編集しようとしても、下記エラーにより保存ができなくなります。
エラー:「レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました。」
そのため、上記処理の前にwindow.confirmを入れるか、別途ボタンを設置するなどして、処理の実行可否を分岐する方が良いです。
Koichiさん
返信が遅くなり申し訳ございません。
教えていただいたPUT処理とページの再読み込みを組み合わせて
無事、イメージした処理を行うことができました。
ご回答いただき、大変感謝しております。
yamanakaさん
ご確認ありがとうございます。
解決されたようで安心しました。