稼働日数の計算方法

以下のようなアプリから、山田太郎さんが7月に何日働いたか集計したいです。
image

クライアント先のKintoneでの作業のためプラグインの導入が難しく、
クロス集計機能など色々試したのですが出来ず・・・

JavaScriptの知見は全くないのですが、もしJavaScriptで実現可能なのであれば、是非勉強してみたいです。

みなさま、お知恵をいただけますでしょうか・・・

1 Like

1つ1つのレコードなのか、1つレコードのサブテーブル上のデータなのかで変わります。JavaScriptでのカスタマイズなら実装出来ますが、知見がない状態で今回必要な処理(REST API)まで辿り着くにはそれなりに時間が掛かります。時間を掛けずに実装するのであれば、然るべきプロに依頼するのが良いでしょう。
何にせよプラグインを導入しないのであれば、カスタマイズをするしかありません。右上のリンクからJavaScriptカスタマイズのチュートリアルに進めるので、覚えるのであればそちらから進めるのが良いでしょう。

1つ1つのレコードで、仮にJavaScriptカスタマイズで実装するのであれば、
複数のレコードを取得するでクエリを「スタッフ名が山田太郎かつ2023年7月1日以降かつ2023年8月1日より前(月末日指定だと月によって変わるので次の月の1日に対して「<より前」を指定するのが良いでしょう。また単純に今月、来月といった相対的な指定であれば演算子が用意されています)」とし、レコードを取得
②取得したレコードオブジェクトの配列を元に計算(重複を削除するメソッドを使用して配列のlengthを取るか、ループ処理で重複しない場合だけ加算するか)
③計算したデータを、レコードに反映させるのであればレコードに値をセットする等を、単純に表示させるだけであればHTMLを作ってどこかの要素を取得(スペースフィールドの要素を取得する等)し描画

といった手順で可能です。1つのレコードにあるサブテーブルの話であれば、取得するレコードが1件(もしくは開いているレコードであればdetail.showのevent.recordでもいいかもしれません)、日数計算する対象がサブテーブルに変わるだけです。

という説明が限界です。

もし、カスタマイズをせず運用だけで何とかするのであれば、同じ日付のデータ(この場合はレコードとします)が複数あるために集計が取りにくいのであって、同じ日付の内容は1つのレコードにまとめてしまうのも良いのではないでしょうか。
この場所はカスタマイズをする人間の集まりなので、カスタマイズなしの運用で意見を求める場合はキンコミの方が良いでしょう。

2 Likes

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。