ラジオボタンについて

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

済にした場合、当日の日付けを自動で入るようにしたいです。

if (record[‘確認状況’][‘value’] === ‘未’) {
kintone.app.record.setFieldShown(‘確認日’, false);
}else {
kintone.app.record.setFieldShown(‘確認日’, true);
}

「確認日」の初期設定で「レコード登録時の日付を初期値にする」ことで

入力画面では、「確認状況」を「済」を選択した場合のみ

「確認日」を該当する現在の日付で表示することができましたが、

一覧表示になった場合、これが全然使えなくなるので、やっぱり

「確認日」の初期設定で「レコード登録時の日付を初期値にする」にせず、

一覧の画面で「確認状況」に済を選んだタイミングで確認日を現在日付になるという設定は可能でしょうか。

ぜひ、アドバイスお願い致します。

ハスさん

こちらが参考になるかと。

ラジオボタンの変更日を日付フィールドにセットする方法

https://cybozudev.zendesk.com/hc/ja/community/posts/115017697463-%E3%83%A9%E3%82%B8%E3%82%AA%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%AE%E5%A4%89%E6%9B%B4%E6%97%A5%E3%82%92%E6%97%A5%E4%BB%98%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AB%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95 

一覧画面での値変更が必要とのことで、

app.record.index.edit.change.確認状況

のイベントで確認日に現在日付を代入する。

という流れになるかと思います。

 

松村 様

ご指導ありがとうございます。

初心者で大変申し訳ございません。以下のように書いてみましたが、確認日のレコードさき表示しなくなりました。

お手数をおかけしますが、間違っているところ、教えていただけますでしょうか。

よろしくお願い致します。

(function() {
“use strict”;

//レコードの追加、編集、詳細画面で適用する
var events = [‘app.record.detail.show’,
‘app.record.create.show’,
‘app.record.create.change.確認状況’,
‘app.record.edit.show’,
‘app.record.edit.change.確認状況’];

kintone.events.on(events, function(event) {

var record = event.record;

//「前確認日」フィールドの表示、非表示を切り替える
if (record[‘確認状況’][‘value’] === ‘済’) {
record[‘確認日’]=today;
}else {
//「未」の場合は「確認日」を非表示する
kintone.app.record.setFieldShown(‘確認日’, false);
};
});
})();

ハスさん

<確認状況が「未」の場合は、確認日を非表示にする>ではなく、

<確認状況が「未」に更新されたときに、確認日を空白にする> というロジックで

組んだ場合です。表示の時になにもいじらなくて良いので(個人的な好みです)。

日付の加工は、 moment.js を使った方がスマートかと思いますが、今回は使っていません。

 

(function () {
    "use strict";

    kintone.events.on(['app.record.create.change.確認状況','app.record.edit.change.確認状況','app.record.index.edit.change.確認状況'], function (event) {


        var date = new Date();
        var today = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2);

        if(event.record['確認状況']['value']=='済')
        {
            // 本日日付
            event.record['確認日']['value'] = today;
        }else{
            event.record['確認日']['value'] = '';
        }
        return event;
    });

})();

松村 様

すごいです。本当にありがとうございます。

とても勉強になりました。

松村 様

お忙しいところ恐縮ですが、もう一つ質問してもよろしいでしょうか?

同じアプリの中で、確認状況_2、確認状況_3、確認日_2、確認日_3も存在する場合、

教えて頂いたプログラムも上と同じ感じで増やしたんですが、全然動作しなくなるのはどうしてでしょうか?

アドバイス頂ければ幸いです。

(function () {
    "use strict";

    kintone.events.on(['app.record.create.change.確認状況','app.record.edit.change.確認状況','app.record.index.edit.change.確認状況','app.record.create.change.確認状況_2','app.record.edit.change.確認状況_2','app.record.index.edit.change.確認状況_2'], function (event) {


        var date = new Date();
        var today = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2);

        if(event.record['確認状況']['value']=='済')
        {
            // 本日日付
            event.record['確認日']['value'] = today;
        }else{
            event.record['確認日']['value'] = '';
        }
        return event;

if(event.record['確認状況_2']['value']=='済')
        {
            // 本日日付
            event.record['確認日_2']['value'] = today;
        }else{
            event.record['確認日_2']['value'] = '';
        }
        return event;
    });

})();

 

ハスさん

return event;

は最後の1行だけあればOKです。

 

松村 様

ありがとうございます。

とても助かりました。