出張開始(日時フィールド)と出張終了(日時フィールド)から日当計算するようJavascriptにて考えています。
※単純な出張終了-出張終了ではありません。
計算する式は出来たのですが、その場合、日時フィールドの日付を入れるとすぐに時間を選択することなく
その前に「0:00」が勝手に入力されてしまいます。
このJavascriptを追加しない場合は、普通に日付、時間を入力する形となり、それに合わせたいのですが、
これを回避するためには、どのようにすればよいかご教示ください。
出張開始(日時フィールド)と出張終了(日時フィールド)から日当計算するようJavascriptにて考えています。
※単純な出張終了-出張終了ではありません。
計算する式は出来たのですが、その場合、日時フィールドの日付を入れるとすぐに時間を選択することなく
その前に「0:00」が勝手に入力されてしまいます。
このJavascriptを追加しない場合は、普通に日付、時間を入力する形となり、それに合わせたいのですが、
これを回避するためには、どのようにすればよいかご教示ください。
javascriptにて計算するタイミングは、1回計算するだけで、日当が未入力(計算)で
かつ、出張終了(日時フィールド)の値が変更後もしくは、出張開始(日時フィールド)の値が変更後
になります。
Mizushiさん
cstapの瀧ヶ平です
具体的にどういう処理をなされているのか分からないため、よろしければ可能な範囲で用意したJavaScriptなど記述していただけると答えやすいです。
日当計算するだけであれば、レコードの登録時イベントで計算して日当にあたるフィールドに値を代入するだけで問題ないかと思いますが…
回答ありがとうございます。
原因は出張開始および出張終了の条件式がよくないと思いましたが、解決には至っておりません。
ほぼ省略していますが、出張終了の入力後、日当表示となるjavascriptを記述します。
※「if (record[‘出張期間_開始’].value)」の部分の記述方法の質問だと思いますが、ご教示ください。
(function () {
function Calc2(event){
var record = event.record;
//日当の処理
if (record[‘出張期間_開始’].value){
//日当の表示 1.0固定
record[‘日当’].value = “1.0”;
}
return event;
};
kintone.events.on([‘app.record.create.change.出張期間_終了’,‘app.record.edit.change.出張期間_終了’],Calc2);
})();
Mizushiさん
おそらく日時フィールドの値変更時イベントが、日日入力時に発火するのでそのタイミングで値を評価するために初期値として0:00が入力されるのではないでしょうか
手元の環境で試してはいないのでわかりませんが、他の部分の処理で代入など行っていなければおそらくkintoneの仕様なので、回避は難しいかと思います。