初心者のFileMaker pro Q&A

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

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

ログインしていません。

アナウンス

Claris FileMaker Pro 19 ヘルプ
新しい質問は、新規トピック から投稿して下さい。


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

KL
ゲストユーザー

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

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

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

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

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

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

Shin
メンバー

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

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

編集者 Shin (2021-06-05 18:27:13)

オフライン

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

KL
ゲストユーザー

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

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

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

Shin
メンバー

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

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

オフライン

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

himadanee
ゲストユーザー

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

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

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

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

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

KL
ゲストユーザー

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

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

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

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

KL
ゲストユーザー

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

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

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

Shin
メンバー

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

20日にはどうなります?

オフライン

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

himadanee
ゲストユーザー

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

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

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

KL
ゲストユーザー

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

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

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

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

himadanee
ゲストユーザー

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

そうです。

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

Shin
メンバー

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

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

オフライン

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

himadanee
ゲストユーザー

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

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

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

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

チポ
メンバー

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

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

オフライン

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

Shin
メンバー

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

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

オフライン

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

himadanee
ゲストユーザー

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

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

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

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

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

Shin
メンバー

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

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

オフライン

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

Shin
メンバー

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

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

編集者 Shin (2021-06-11 17:31:52)

オフライン

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer