タイムカードを作る
タイムカードは一日一人1レコードの紙のタイムカードを同じようなイメージで、打刻のデータを入れるものです。こちらではすでに用意していたタイムカードのレコードにデータを入れています。しかし、実際の運用では、あらかじめ用意されていませんので、タイムカードのテーブルにレコードを作成する方法を考えなければなりません。
打刻とともに作成する方法は?
打刻したときにその日のタイムカードのレコードがなければ、作成するということをもしかしたら思いつかれるかもしれません。しかし、この方法で問題になるのは、休日の扱いです。このソリューションでは、打刻のない日を休日として扱います。この方法では、休日=打刻のない日はレコードが作成されませんので、その休日が、有給なのか、通常の休日なのかが判断つきません。また、会社等によっては特別休暇(夏休み等・忌引き等)を設定している場合もあり、どれかが判断がつきません。結局、後で、レコードを作成することになります。
月の初めにまとめて作る
総務を担当している方が、月の初めまでに、作成しておくというのが一番スマートな方法でしょうか。ここではそのスクリプトについて紹介していきます。
テーブルにレコードを追加
まず、社員マスターテーブルを作成して、画像のようにフィールドを作ります。これがタイムカードを作成するうえでの基準となります。
社員マスターのデータはこのような感じで入れておきます。
いつのタイムカードを作成するかの基準となる日付を入力するためのフィールドです。このフィールドをグローバルフィールドとして作ります。この日から1か月間のタイムカードを作成します。
1か月分のタイムカードを作成するためのスクリプト
行数 | 解説 |
---|---|
1 | スクリプト実行中にFileMaker Proのエラーメッセージを表示させないために使用します。 |
2~5 | メインメニューへ設置した日付が入力されているかをチェックします。入力されていない場合は、カスタムダイアログを表示してスクリプトを終了します。 |
8 | タイムカードを作成する期間の最終日を計算しています。例えば2017/04/01と入力された場合は、2017/04/31が変数として保存されます。 |
10~25 | この期間ですでにタイムカードがないかをチェックします。重複して作成しないためのものです。重複すると、集計する時にダブってしまい、正しい結果が出ない場合があります。 |
27 | これから作成するタイムカードの基準となる全社員を取得しています。それぞれのアカウント名を改行区切りで取得しています。 |
28~40 | Loop処理で、タイムカードを作っていきます。例えば2017/04/01と入力された場合は、4/1の日付の全社員の行を作り、4/2の処理へ……という具合にLoopしていきます。 |
41 | 最後に、処理が終わったことをカスタムダイアログで表示して終了です。 |
これで、打刻から、集計までの一通りの基本機能を紹介していきました。