いつもお世話になっております。
最近、kintoneを始めたばかりなので何とかご教授願いたく書き込みしてみました。いろいろ調べても全然でてきませんでした。
早速ですが、週報アプリを作成しようとしています。
指定した日にちを入力すると、その週の始めの日にちが取得できませんか?
例えば、今日の日付(2019-2-25)を入力すると→(2019-2-25)
明日の日付(2019-2-26)→(2019-2-25)
来週だとして(2019-3-7)→(2019-3-4)
と、その指定した日の月曜日の日にちが欲しいです。
よろしくお願いします。
いこあんさん、こんにちは。
プロジェクト・アスノートの松田です。
JavaScriptカスタマイズを行えば、今週の月曜日の取得とフィールド更新は可能です。
が、kintone標準機能を活用した週次の運用方法として、一覧画面の絞り込み条件で、
日付(対象となる作成日等)=「今週」 という設定ができます。
「日々作成されたレコードを、週報として絞り込む」という運用が可能であれば、この方法もご検討されてみてはと思います。
どうしてもカスタマイズが必要でしたらコメントくださいませ。
例1)今週の日付のレコードを表示する
例2)週次会議が例えば水曜日にあるので、先週木曜~今週水曜 を絞り込む
早速の返信ありがとうございます。
なるほど、こうやり方もあるのですね。勉強になりました。
実は、考えていたのは今週7日間の予定と実績を入れる表みたいのを
作る感じででした。そのためにはやはり、javascriptが必要だと思って
いました。その旨を書いてなかったので失礼しました。
EXCELなら簡単に取得できる関数があるので、javascriptにもあるかと
調べてみましたが、そんな関数はないようです。
どうか、よろしくお願いします。
ある日付フィールドの値を元に、今週の月曜日の日付を別フィールドに入れる。ということでしたら、
以下のような方法でできると思います。
実際利用するアプリや運用によって、更新のタイミングは調整が必要かと思います。
サンプルでは、新規追加/編集画面の保存実行前に更新するように書いています。
毎回日付を変更するという運用でしたら、最初のイベントをフィールド値変更イベントに修正してください。
あと、日付計算にMoment.jsというライブラリーを使っていますので、こちらのリンクを参考に以下のURLを設定してください。
https://js.cybozu.com/momentjs/2.15.1/moment.min.js
https://js.cybozu.com/momentjs/2.15.1/moment-with-locales.min.js
カスタマイズ用のJavaScriptコード:
(function() {
"use strict";
kintone.events.on(['app.record.create.submit','app.record.edit.submit'], function(event) {
let record = event.record;
// 元となる日付フィールドのフィールドコード:日付
const date = record['日付']['value'];
// 今週の月曜日をthisMondayに入れる(Moment.js)
let thisMonday = moment(date).day(1).format('YYYY-MM-DD');
// eventオブジェクトを書き換える(結果を入れる日付フィールドのフィールドコード:月曜日)
record['月曜日']['value'] = thisMonday;
// 結果を反映(eventオブジェクトをreturn)
return event;
});
})();
またまた早速の回答ありがとうございますm(_ _)m
素晴らしいです!考えていた感じの日付が取得できました!!
こちらを応用して、さらに深めていきたいと思います。
Moment.jsのライブラリーなどの使い方もわかったので
これからも活かしていきたいと思います。
本当に、ありがとうございました。