テーブル内の計算フィールドの条件によってif関数を利用したい

 はじめまして。

勤怠管理を行うアプリを作成しています。

下記のようなテーブルにJavaScriptを利用して条件によって項目を変えたいと思います。

/**
* 時間フィールド勤務開始時刻:starttime
* 時間フィールド勤務終了時刻:endtime
* 数値フィールド休憩:resttime
* 計算フィールド就業時刻:worktime 計算式はendtime-starttime-resttime*60
* 計算フィールド時給換算:jikyu 計算式はworktime/60/60
* 数値フィールド時間外換算:zangyo ←条件によって変更したい部分
*/

 

jikyuが8以上の場合、zangyoにworktime-8の結果を自動入力

または8未満の場合は0を自動入力したく

過去の投稿などを拝見しjavaを記入してみたり、試行錯誤したのですがうまくいきません。

 

ご教示よろしくお願いいたします。

 

 

こんにちは!

 

計算結果が上手くいってるのかどうか、不明なのですが、

処理を書いてみました。

 

少しでも参考になれば幸いです。

 

(function () {
"use strict";

    var events = [
        'app.record.create.submit',
        'app.record.edit.submit'
        ];

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

        var record = event.record;
        var targetRow = record.Table.value[record.Table.value.length -1];
       
        if(targetRow.value.jikyu.value >= 8) {
            targetRow.value.zangyo.value = targetRow.value.worktime.value -8;
        } else {
            targetRow.value.zangyo.value = 0;
        }
       
  return event;
  
 });
})();

ありがとうございます。

計算結果がうまく表示されませんでしたが、テーブルを参照させる参考にさせていただきます。

当方がJava等ほとんど触ったことがありませんので、とても勉強になります。

申し訳ありません。

上記の処理はレコードを保存することで、計算が行われ、時間外換算フィールドに値が

入るようになってます。

 

上記の理由としまして、計算フィールドは フィールドのchangeイベント(値の変更が行われた際に発火するイベント)が

対応していないようなので、レコードの保存にて計算結果を入れる処理としました。

 

レコードの保存前に値を自動入力するのであれば、「休憩」フィールドや業務開始時刻、業務終了時刻などの

changeイベントにて計算を行い、入力させるといった対応になりそうです。。

具体的なご説明ありがとうございます。

計算フィールドだとそういった制約があるのですね。

やりたい事としては、レコード保存前に自動計算をさせたいと思いますので

フィールドの構成をもう少し練ってみようと思います。

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