初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2022-11-09 10:29:49

あさい
Guest

タイムカードの勤怠記録を1か月分ごとにしたい

お世話になってます。
昨日から教えていただきながら、タイムカードを作成してます。
初心者ながら何とか、iPadでバーコードを読み込みタイムカード記録用にデータを作成していけるような状態になりました。
(出勤退勤かかわらず、(テーブル)タイムカードに記録。(フィールド)打刻タイムスタンプ、ID、区分「※スクリプト引数で出勤か退勤か記録されるようにしました」

この後の流れとして、1人1か月分を1ページとしてデータを作成したいと考えていますがどのように作成すればよいかご教示いただけないでしょうか?

私は、今までPDFや印刷するといった処理は行っておらず、いったんすべてのデータをそのままエクスポートしてExcelにしてから並べ替えたり加工してPDFにして印刷していたような状態です。
いろいろ学べたら幸いです。

#2 2022-11-09 12:56:21

himadanee
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

打刻がない日も(カレンダーみたいに)印刷するのかによって、処理方法が変わると思います。
ある日だけでいいなら、そのまま検索・ソートして集計レイアウトで表示するだけでできると思いますが...

#3 2022-11-09 13:13:09

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

himadanee様、処理が異なってくるのですね。
要望としては、打刻がない日も含めて1日~30日or31日までで出したいです。

#4 2022-11-09 13:36:55

Shin
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

1日1レコードのテーブルを作り、そこから、IDと日付でデータを参照させる、というのはいかがでしょう。これでしたら、打刻忘れの手入力も、処理がまあまあ簡単です。

Offline

#5 2022-11-09 15:35:01

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

Shin様、引き続きありがとうございます。

どのように作成していけばよいでしょうか?
1日1レコードのテーブルを作り → ということは、新規でテーブルを作成するということですよね?
その新規テーブル(仮にデータ集計とでも)とタイムカードのテーブルのIDと日付をリレーションすればよいのでしょうか?

打刻忘れの手入力も、処理がまあまあ簡単です。 → これは非常に助かります。現状抜けてることが多々ありまして・・・その処理についてもご教示いただければお願いします。

#6 2022-11-09 16:47:16

チポ
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

タイムカードのテーブルで、全日付のレコードを作ってもいいのでは。

全員分の、翌日分でも、一か月分でも、レコード作成は
スクリプトで自動化できますよね。

Offline

#7 2022-11-09 16:55:18

Shin
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

ID を設定するグローバルフィールド、年月 を設定するグローバルフィールドと、日付を計算させるフィールドを作ります。1月分ですので31レコードは必要ですね。
日付フィールドは、Date ( 月 ; Get ( レコード番号 ) ; 年 ) という計算フィールドでいいでしょう。
区分をみるために、グローバルフィールドを2個作り、それぞれに、出社、退社 を設定しておきます。(レコードを作成するときのテキストと合わせます)
打刻の追加、修正が必要なのでしたら、タイムカード テーブル側に、タイムスタンプと別に 日付 と 時刻 を自動入力するフィールドを作っておきます。

ID と 日付 区分 フィールドで、タイムカードとID と 日付 区分 フィールドで、リレーションします。(区分フィールドが2個あるので、タイムカード側のオカレンスを2個作り、それぞれからリレーションを2個作ります)
カレンダーのテーブルで、日付と、リレーション先の時刻をそれぞれ表示させれば、一覧表になります。

Offline

#8 2022-11-10 11:06:33

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

チポ様、全日付のレコードを作成させるような感じなんですね。
Shin様、今、新たにデータ集計用のテーブルを作成し以下のフィールを作成したのですが、理解が追い付いておらずわからないところがあるのでお願いします。
【作成したフィールド】
・g_ID(タイプ:数字、グローバル)
・g_ID(タイプ:日付、グローバル)
・日付計算用(タイプ:計算、Date ( 月 ; Get ( レコード番号 ) ; 年 ) )→「月」と「年」がどこのフィールドとしればよいでしょうか?
・g_区分出勤(タイプ:テキスト、グローバル)
・g_区分退勤(タイプ:テキスト、グローバル)


1 日付を計算させるフィールドを作ります。1月分ですので31レコードは必要ですね。
とありますが、フィールドは日付計算用フィールドの1つでタイプを計算にすればよいでしょうか?
2 区分をみるために、グローバルフィールドを2個作り、それぞれに、出社、退社 を設定しておきます。(レコードを作成するときのテキストと合わせます)
ですが、設定とはどのようなことをするのでしょうか?

#9 2022-11-10 11:17:16

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

Shin様、失礼しました。
データ集計用のテーブル→カレンダーのテーブルでした。

#10 2022-11-10 11:42:09

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

なんとなく、カレンダーテーブルにて作成してみましたが一覧になりません。
リレーションは以下となります。
カレンダーテーブルとタイムカードテーブル
・g_ID と ID
・g_区分出勤 と 区分
・g_年月 と 打刻(タイムスタンプのほう)
同じようにタイムカード2をオカレンスで作成して
・g_ID と ID
・g_区分退勤 と 区分
・g_年月 と 打刻(タイムスタンプのほう)

#11 2022-11-10 12:01:54

チポ
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

タイムカードは
出勤と退勤毎に1レコードとしてるのですね。

それでは、
タイムカードで1日1レコードで表示は面倒ですね。

カレンダーテーブルとしても、
出勤と退勤で日をまたぐと、おかしなことになりませんか?

1出勤に対して、退勤
と考えないと。。

Offline

#12 2022-11-10 12:27:58

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

チポ様、「出勤と退勤毎に1レコードとしてるのですね。」→その通りです
まだテスト用のデータしか入れてないので、わからないです。
ただ、業務的には日をまたぐ出退勤があるので対応できる仕様にはしたいのですが・・・やり方がわからず困ってます。

#13 2022-11-10 13:15:20

Shin
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

https://www.dropbox.com/s/vprz8d53pjvsl … 2.zip?dl=0

1出勤1レコードにすると、少しだけ最初のスレッドに書かれていたようなスクリプトが必要になります。
1イベント1レコードにすると、そのスクリプトは非常に簡単になりますが、カレンダーでの構造がすこしだけ追加が必要です。少し構造を加えると、カレンダーを使わずにでもタイムテーブルだけで処理は可能です。
出勤に対して退勤をつくっていくと、出勤の打刻忘れのときの処理が必要になります。日跨ぎがあると、特に連続した打刻忘れの場合を考えると、退勤日時で出勤日を特定できないので、後処理が結構面倒ですね。
それらを考えて、どちらがいいのでしょうね。

Last edited by Shin (2022-11-11 10:58:46)

Offline

#14 2022-11-10 13:15:35

チポ
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

退勤は必ず出勤に対してあるのですから、
出・退勤を1レコードにしてもいいのでは。

たしか、前スレではそうするように進んでいましたよね?
これなら、タイムカードテーブルのみで決着できます。

別レコードとするのなら、
日をまたいだら、出勤と同日付の25:00:00のように
48時間制で記入したらいかがでしょう。

Offline

#15 2022-11-10 14:09:17

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

Shin様、サンプルありがとうございます。理解できてなくていろいろ間違っていました。参考にしながらもう一度やってみます。
どちらがいいのかは私自身が理解できていなくて何とも言い難いところなのが現状です。

チポ様、はじめそのようにしたいと進めていましたが処理など私自身ついていけずですみません。

お二人の意見を参考にしてShin様のサンプルファイルで、チポ様が仰っている24時間体制にして日をまたぐ出退勤にも対応は可能でしょうか?

下記のような時間勤務が発生する場合があります。
例えば、11/10 8:00~17:00
    11/10 23:30~27:30

#16 2022-11-11 08:52:40

himadanee
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

1日2勤務があるとなると、「打刻がない日も含めて1日~30日or31日までで出したい」があんまり意味がないような感じですが...
例でいうと、11/10のようなのを表示するためにスペースを大きく取っておかないといけないので、他の日がすかすかになったり
1か月カレンダーでなく単純に縦のリストならスライドで詰められますが...

1日1人1レコードのテーブルから打刻をリレーションで参照してポータル的にList()で参照して表示、でできると思いますが、それを何に使うのか、ですね。
打刻漏れのチェック?

#17 2022-11-11 08:54:19

Shin
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

3:00~8:00 とかの勤務もありそうですね。(24時間を超える勤務はないですよね)
打刻忘れがないのでしたら、直近の出勤を探してその情報をもとにして、27時にするか3時にするかをきめるという処理はできます。というより、タイムスタンプで処理すればいいです。

Offline

#18 2022-11-11 08:56:13

チポ
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

24時間以上の勤務がないとして、、

タイムスタンプから、日付と時刻に分けるときに、
退勤の日付が出勤と異なる場合は
時刻に24:00:00を加え、
日付は-1減算する
とすればいいのでは。


打刻忘れに関しては、、
最後が出勤で終わっていれば今回は退勤
退勤で終わっていれば出勤
が正常ですよね。

それが異常ならアラートを出す。
で修正できるでしょう。

Offline

#19 2022-11-11 09:26:35

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

皆様ご回答ありがとうございます。
himadanee様、仰るように打刻漏れなどの確認やできるだけこちら側の手間をなくしたかったというところです。
Shin様、チポ様、24時間を超える勤務はありません。
昨日からサンプルをもとに修正してから試作のもので打刻をやってみて、そういった勤務になることが頻繁ではないのでタイムカード側でわかればいいかなと思ってます。
どうしても打刻忘れがあるという前提(してほしくはないのですが)のため、打刻をする側が「出勤」「退勤」とした記録をもとにおかしいところを後から修正なりでもいいのかなと。。。

#20 2022-11-11 10:06:28

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

Shin様、いただいたサンプルの中で教えていただきたいところがあります。
カレンダーテーブルで「g_YM」のフィールドの月を変更しようとするとフィールド内容の全置換が毎回でてくるのですが、どのようにすればなおりますでしょうか?

#21 2022-11-11 10:16:57

Shin
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

私のところはRFIDのタイムカードなんですが、忘れる人(数人に特定されていますが)はなぜか数回続けて忘れてくれます。
また、出勤と退勤の区分間違いも結構多いです(こちらは不特定)。
最初は、その前回の打刻との絡みで自動修正かけていたのですが、どうしようもなくなって、シフト表をみないとその前の出勤か退勤をみるだけではおかしな結果になりますね。
建物の出入口と更衣室の両方でデェックする、という方法(その時間差で出入りを区別)は考えたのですが、コストと手間を考えて作っていません

Offline

#22 2022-11-11 10:20:19

Shin
Member

Re: タイムカードの勤怠記録を1か月分ごとにしたい

31レコードで使い回そうとすると、各レコードの日付を計算し直す必要があるのですが、グローバルフィールドを変更しても、索引付きで変更する手段が全置換以外ないので使っています。スクリプトのダイアログをオンにしたままだったかもしれません。それをオフにします。

Offline

#23 2022-11-11 10:50:26

あさい
Guest

Re: タイムカードの勤怠記録を1か月分ごとにしたい

Shin様、同じく特定の方ですのでまあ、注意を促す必要はありますね。
全置換についてはそういう理由があったのですね・・・スクリプト変更して問題なくできました!

しばらく自身でテストして何か不都合があれば修正や変更していきたいと思います!
今の時点で自身の勉強不足が否めませんので試行錯誤しながらまた不明な箇所があれば質問を上げさせていただければと思います。
皆様の意見などかなり勉強になり、ありがとうございました。またすぐスレッド作成するかもしれないですが、何卒よろしくお願いします。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 617.23 KiB (Peak: 634.14 KiB) ]