【kintone】チェックボックスクリック時に、ユーザー名(表示名)を入れたい

背景・実現したいこと

kintoneアプリの入力項目で、上のような入力をボックスを作成しました。

『確認』の【確認済】にチェックを入れると、クリックした時の日時が『確認日時』へ、クリックしたユーザーの表示名(リンク付き)が『確認者』へ表示されるようにしたいです。

 

エラー情報 (開発者ツールのコンソール)

moment.jsを使用して、クリックした時の日時を『確認日時』へ入れることはできました。

その時に使用しているユーザー情報をどう取得して、どのように入れるのかが分からず投稿しました。

 

利用したソースコード

 こちらのコードは、『確認日時』の部分のみです。

(function() {
    “use strict”;

    // レコード詳細画面の編集イベント

      // ボタンクリック時の処理

       kintone.events.on(‘app.record.edit.change.確認’, function(event){
        var record = event.record;
   
        // チェックボックス『確認』の【確認済】にチェックが入った場合
        if(record[‘確認’].value == ‘確認済’){
          // 日時ボックス『確認日時』にチェックを入れた日時が入る
        // 日時を取得
          moment.locale(‘ja’); // Moment.js ロケールの初期化
        var presentDate = moment().format(‘YYYY-MM-DD HH:mm’);
        record[‘確認日時’].value = presentDate;
        // それ以外の場合
        } else {
          // 日時ボックス『確認日時』は空欄のまま
          record[‘確認日時’].value = [];
        }
        return event;
        });
})();

 

試してみました。

(function() {
    "use strict";
    kintone.events.on(['app.record.create.change.確認', 'app.record.edit.change.確認'], function(event){
  const user = kintone.getLoginUser();
        var date = new Date();
        event.record.確認者.value.splice(0);
        event.record.確認日時.value = "";
        if(event.record.確認.value[0] === "確認済み"){
            event.record.確認日時.value = formatDateTime(date);
            event.record.確認者.value.push({code:user.code, name:user.name});
        }
        return event;
    });
})();

function formatDateTime(dt) {
  var y = dt.getFullYear();
  var m = ('00' + (dt.getMonth()+1)).slice(-2);
  var d = ('00' + dt.getDate()).slice(-2);
  var hh = ('00' + dt.getHours()).slice(-2);
  var mi = ('00' + dt.getMinutes()).slice(-2);
  return (y + '-' + m + '-' + d + ' ' + hh + ':' + mi);
}

↓チェックすると確認日時と確認者が設定されます

↓チェック外すと消えます

 

 

masuda.mitsuo 様

 

コメントありがとうございます!!

載せていただいたコードを試してみたところ、私の方ではできませんでした・・・

確認者に関係する部分を消すと、確認日時の部分は動きました。

console画面で見てみると、【event.record.確認者.value.splice(0);】の部分にエラーが出ているようで、内容は【Uncaught TypeError: Cannot read properties of undefined (reading ‘value’)】と書かれていました。

 

確認者のフィールドコードは「確認者」でしょうか?

↓確認者の部分をフィールドコードで設定した値に置き換えてみてください。

event.record.確認者.value.splice(0);

大変失礼しました。

「確認者」のフィールコードだけ、初期値の「ユーザー選択」から変更するのを忘れていました。

フィールドコードを変更したら、無事できました。

本当にありがとうございました。