Kintone レコード詳細画面表示時におけるフィールドへの値入力について

お世話になっております。

レコードの詳細画面を開いた際に、

ルックアップフィールドへの自動入力→他フィールドにコピーされた値を参照→

コピーされた値をもとに計算フィールドで自動計算

といったことを行いたいのですが、app.record.create.show、app.record.edit.showと同じ方法ではうまくいなかなったため、問い合わせていただきました。

 

イメージとしましては、画面を開いた際にルックアップフィールドの「売上締日区分」に値が入り、

隣の「締日」にコピーした日付が入ります。

そのコピーした日付に1日追加した結果が「売上登録可能日」(計算フィールド)に表示されるようにしたいです。

※添付のスクショを参考にしていただけますと幸いです。

 

尚、レコード作成時、編集時は以下の方法でうまくいっております。

  1. (function() {
  2. ‘use strict’;
  3. kintone.events.on([‘app.record.create.show’,‘app.record.edit.show’], function(event) {
  4. var record = event.record;
  5.  
  6. record[‘ルックアップ’].value = ‘TK’;
  7. record[‘ルックアップ’].lookup = true;
  8. return event;
  9. });
  10. })();

お手数をおかけし申し訳ございませんが、ご教示いただけますと幸いです。

 

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さん
ご確認ありがとうございます。
解決されたようで安心しました。