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

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

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

You are not logged in.

Announcement

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


#1 2021-06-05 17:51:07

KL
Guest

出勤簿の注意事項をループさせる方法を教えて下さい

基本テーブル
基本ID
日付
注意事項ID
詳細テーブル
詳細ID
従業員名
出勤時間
退勤時間
注意事項テーブル
注意事項ID
注意事項内容

という構成で出勤簿をつくります
注意事項について、注意事項テーブルに20項目あり、それを順繰り表示させたいです
1から増えていき20になるとまた1から表示させるということです

日付で対応させると、注意事項の項目数が足りないので、
注意事項IDの21以降は重複したものを注意事項テーブルに登録すると
頻度が極端に増えるものがでてしまいます
仮に無理やり31項目に増やしたとしても、31個目はほとんど出現しなくなります

レコードが増えても重くならない方法で実装する方法はありませんか?
レコード作成時に自分の基本IDのひとつ前のレコードの注意事項IDと比較して
計算、表示させる仕組みだと増えると重くなっていきますよね?

#2 2021-06-05 18:09:31

Shin
Member

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

Mod ( Get ( 日付 ) ;  20 ) + 1
で如何でしょう。ランダムに均等に出したければ、乱数とか秒とかを使ってもいいかな。

Last edited by Shin (2021-06-05 18:27:13)

Offline

#3 2021-06-06 03:02:44

KL
Guest

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

日付を割るということになると、休日が入ると
その分だけ注意事項は飛ぶ(1の次が4になるとか)、ということになりますか?

#4 2021-06-06 03:18:44

Shin
Member

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

必ず、1, 2, 3, ... と表示させなければいけませんか。長期間でみると、事項数が7の倍数にならない限りは、休日を含めて、表示回数はほぼ均等になります。
どうしても許されないのでしたら、休業日を除いてあるカレンダーを作ればいいでしょう。

Offline

#5 2021-06-06 07:18:23

himadanee
Guest

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

基本テーブルにシリアル番号を追加して、それをGet(日付)の代りに使えばいいのでは。

レコード作成時に自分の基本IDのひとつ前のレコードの注意事項IDと比較して
計算、表示させる仕組みだと増えると重くなっていきますよね?

Lookup関数で参照すれば別に重くはならないけど。「前のレコード」を参照するためのフィールドが必要なので、シリアル番号の方が簡単です。
「レコード作成時」に必ず検索解除することにすれば、追加のフィールドやリレーションなしでGetNthRecordで参照できますね。

#6 2021-06-06 15:57:10

KL
Guest

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

たしかに長期間で見ると大差ないのかもせれないので、それで良いかもしれませんね

シリアル番号を追加して日付のかわりにつかうとはどういうことですか?
MAXを求めてからシリアルを自動入力するようにするということでしょうか?

#7 2021-06-08 16:33:29

KL
Guest

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

Shinさん
式の +1 はなぜですか1日が2になりませんか?

#8 2021-06-08 16:35:30

Shin
Member

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

20日にはどうなります?

Offline

#9 2021-06-08 17:21:51

himadanee
Guest

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

代りにとは、
Mod ( シリアル番号のフィールド ;  20 ) + 1
ということです。

#10 2021-06-09 20:44:49

KL
Guest

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

20日が1になるから1から20でループするってことですね

日付よりもシリアル番号でやったほうが、
削除しない限り歯抜けがでないのでよいような気がしますがそれであってますか?

#11 2021-06-09 21:10:00

himadanee
Guest

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

そうです。

#12 2021-06-10 00:25:48

Shin
Member

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

シリアル値を従業員毎に振るのも、ちょっと手間では、という発想で、抜けも平均化出来る通し日を提案したんですが。

Offline

#13 2021-06-10 10:18:28

himadanee
Guest

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

従業員ごとという話はどこから出てきました?
最初の発言の、日付ごとのテーブル(基本テーブル)に表示するようになってます。

しかし、何の注意なのかわかりませんが、20個を同じ順序で繰り返すより、日付のままで休日があれば少し飛ばしたり、ランダムに出てきた方がいいような気もしますね...完全にランダムだとあんまり長く出てこない事項があっても困るのか。
重要なことなら、20個なら常時全部表示とか、毎回5個ずつとかにしないと、20日に1回しか出てこないのではあんまり意味がない感じもするし...

#14 2021-06-10 11:36:32

チポ
Member

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

ランダムに一つ選択
ではなく、
1~20をランダムに並び替える
という考え方も、、

Offline

#15 2021-06-11 08:42:37

Shin
Member

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

最初に示されているテーブルは、1日1職員1注意事項ですよ。それにシリアルを打てば、職員ごとに異なる注意事項が出てきますよ。

Offline

#16 2021-06-11 09:02:25

himadanee
Guest

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

基本テーブル
基本ID
日付
注意事項ID

注意事項はここに入れるのだから、1日1注意事項なのでは。

1日1職員の方は
詳細テーブル
詳細ID
従業員名
出勤時間
退勤時間
ですよね。これはポータルか何かで入れてるのだと思いますけど。今見直すと、ここに外部キーの基本IDが抜けてますね。。。詳細IDは特に使ってなさそうなので、それがリレーションキーなのかも。

#17 2021-06-11 09:41:16

Shin
Member

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

申し訳ない、読み間違いました。

Offline

#18 2021-06-11 15:08:21

Shin
Member

Re: 出勤簿の注意事項をループさせる方法を教えて下さい

週休2日ならば、1週間で5進むので、20件だとその他の休日が無ければ曜日で固定されてしまいます。

Last edited by Shin (2021-06-11 17:31:52)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.012 seconds, 9 queries executed - Memory usage: 534.02 KiB (Peak: 554.56 KiB) ]