カテゴリー

勤怠管理で行ってみよう! Part3(打刻とタイムカードの実際)

FileMaker(ファイルメーカー)の実践(Tips) 実践編

打刻からタイムカードへ

前の記事では、打刻について紹介していきました。ここでは、その記事で紹介した2つの方法でタイムカードにデータを移す方法を紹介していきます。

タイムカードのテーブル

タイムカードのテーブルについては、前回紹介しましたが、下記の図のようになっています。

このタイムカードのテーブルには起動時などに、スクリプトなどですでにレコードが作成されているものとします。この作成方法は改めて別の記事で紹介します。

クリックするボタンで決まる

この図のようにレイアウトに2つのボタンがあります。

そして、このようにスクリプトを作成します。このスクリプトを先ほどのボタンに設定します。その時に、スクリプト引数として、出勤ボタンには「出勤」、退勤ボタンには「退勤」を設定しておきます。こうすることで、二つの動作を実行する場合でも、処理としては出勤時刻、退勤時刻のどちらかのフィールドに配置するだけの違いしかないので、スクリプトは一つでいいわけです。この例のように、スクリプト引数を使うことによって、処理を一部だけ分岐することができるわけです。

リレーションでタイムカードに記録

この方法は、その日の最初の打刻を「出勤」、最後の打刻を「退勤」とする方法です。

まずリレーションをこのように組みます。タイムカードのテーブルと、打刻のテーブルで、アカウント名と日付のフィールドをそれぞれドラッグしてつなぎます。また、もう一つ同じものを作ります。打刻のテーブルのもう一つのオカレンスを作成するには、左下にあるテーブルを追加ボタンをクリックします。

レコードのソート

ここで重要なのは、レコードをソートすることです。「打刻」と「タイムカード」をつないでいる「=」をダブルクリックして、「打刻」の「打刻時刻」に対して昇順のソートを設定します。

さらに「打刻 2」テーブルの「打刻時間」に対して今度は反対の降順のソートを設定します(下図)。

この方法の場合は、打刻用のボタンは1つでいけます(下図)。

さらにこのボタンに設定するスクリプトは下記のようになります。今回の処理は1種類なので、スクリプト引数は使用しません。このスクリプトの肝は、フィールド内容の再ルックアップによってデータが書き込まれるということです。その日の打刻が1件のみの場合は、出勤、退勤時刻の両方に同じデータが書き込まれます。2件以上の場合はしっかり両方に違う時刻が書き込まれます。

また、ルックアップでデータを書き込むため、タイムカードの出勤時刻に「打刻::打刻時間」、退勤時刻に「打刻 2::打刻時間」のルックアップを設定する必要があります。

次回は、勤務時間の計算などタイムカードの処理について紹介していきます。