ブログ

2022/08/24
【プリザンター】 第159回)2つの日付項目の差分計算

プリザンターでの日付の計算

こんにちは、CCS田中です。

みなさんご存知のように、プリザンターでは日付項目が使えるようになっています。また、プリザンターでは「問合せ管理」や「作業報告書」などにも多く利用されております。その際に、対応開始日時対応終了日時を入力されたりしていますでしょうか?
そういった場合に、対応開始から終了までどのくらいの時間がかかったかなど、後から対応状況を分析する場合に必要になってくるかと思います。しかし、プリザンターでは単純に2つの日付項目から差分を計算することができません。

そこで!、今回はサーバスクリプトを使って、2つの日付から差分を出す方法を説明します。
サーバスクリプトを触ったことがない人も、難しい内容ではありませんので、ぜひサンプルを参考に作成してみてください。

2つの日付から差分を計算するサーバスクリプト

早速サーバスクリプトを設定していきます。

事前に以下の項目を含むテーブル(記録テーブル)を作成しておいてください。

・作業開始日時(日付A)
・作業終了日時(日付B)
・作業時間(数値A) → 小数点2桁、端数処理は四捨五入

以下の手順でサーバスクリプトを設定します。

1. 上記で作成したテーブルを開く
2. メニューから管理 > テーブルの管理 > サーバスクリプト タブへ移動
3.「新規作成」ボタンを押下し、任意のタイトルを設定
4. 以下に記載したスクリプトを記載
5.「条件」で「計算式の後」を選択
6.「追加」ボタンを押下
7.「更新」ボタンを押下

<2つの日付項目から差分を出すサーバスクリプト>


function CalculateDiff(strDate,endDate) {
let diffdays = endDate - strDate;
let diffhours = Math.floor(diffdays / 60000)/60;
return diffhours;
}
model.NumA = CalculateDiff(model.DateA,model.DateB);


説明
1~5行目 2つの日付から差分を計算するファンクション
2行目 終了日時から開始日時を引いて変数diffdaysに代入
3行目 変数diffdaysを一度(切り上げで)分単位に変換して、その後時間単位にして変数diffhoursに代入
4行目 変数を戻す
6行目 編集ページ上の日付Aと日付Bをファンクションで計算した結果を数値Aに代入

では確認してみましょう。

1.新規作成ボタンで新規レコードを作成
2.作業開始日時と、作業終了日時を入力して、作成ボタンを押下
→ 作業時間に小数点2桁まで表示された差分時間が表示される

まとめ

いかがでしたか?

今回は、プリザンターの標準機能では持っていない2つの日付項目から差分を計算する方法を紹介しました。
サンプルでは時間単位で出力しましたが、上記の3行目を 「let diffhours = Math.floor(diffdays / 38400000);」にすることで、日数(切り捨て)を出力することもできます。
それほど難しくないと思いますので、一度お試しください。

弊社ではスタイル・スクリプトサンプル集、プリザンター逆引き辞典のほかにも、運用ノウハウ集の販売もございます。また、導入の支援や、スクリプト開発なども支援いたします。

ご相談の内容によっては有料となる場合がございますが、まずは気軽にご相談ください。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問い合わせください
☆☆☆

PAGE TOP