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

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

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

You are not logged in.

Announcement

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


#1 2017-08-28 17:31:43

taka
Member

1対多のリレーションによるLookupについて

いつもお世話になっております。 FM16/Win7

スタッフテーブル
ID
基準日(グローバル)
日付[31] (グローバル)Date(Month(基準日[1]); 1 ; Year(基準日[1]))
シフト[31] Lookup(シフトテーブル::シフト; "")

シフトテーブル
ID
希望日
シフト種類
日付[31] Date(Month(希望日[1]); 1 ; Year(希望日[1]))
シフト[31]

リレーション
ID=ID
日付=日付

シフトテーブルで入力完了したときに、希望日の日(8/28なら"28")を変数に格納($day)しシフト[$day]にシフト種類をフィールド設定で入力するようにしています。

たとえば次の2レコードがあったとします。
ID  希望日 シフト種類
001  8/25   有給
001  8/28   代休
スタッフテーブル::基準日が8/1の場合、スタッフテーブル::シフト[25]に有給、スタッフテーブル::シフト[28]に代給が入ると思ったのですがこの考え方は間違っていますでしょうか?

宜しくお願い致します。

Offline

#2 2017-08-28 18:30:16

チポ
Member

Re: 1対多のリレーションによるLookupについて

Lookup
は照合1番目の関連レコードをソースとします。


> シフトテーブルで入力完了したときに、希望日の日(8/28なら"28")を変数に格納($day)し
> シフト[$day]にシフト種類をフィールド設定で入力する

このスクリプトで、スタッフテーブルに入力すればいいのでは。

Offline

#3 2017-08-28 20:07:18

Hiro
Member

Re: 1対多のリレーションによるLookupについて

テーブルのフィールド設定が違います。

【スタッフテーブル】
・ID
・基準日(グローバル)
・日付配列[31]  (グローバル)Date(Month(基準日[1]); Get(計算式繰り返し位置番号); Year(基準日[1])
・シフト配列[31]   Lookup(シフトテーブル::シフト配列; "") 計算結果:非保存

【シフトテーブル】
・ID
・希望日
・シフト種類
・シフト配列[31]   計算:シフト種類[1]

<リレーション>
「スタッフテーブル::ID」 = 「シフトテーブル::ID」
   AND
「スタッフテーブル::日付配列」 = 「シフトテーブル::希望日」

Offline

#4 2017-08-30 13:02:49

taka
Member

Re: 1対多のリレーションによるLookupについて

チポ様
試していないですが確かにそのとおりかもしれません。
ありがとうございます。

Hiro様
無事に出来ました。ありがとうございます。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 504.07 KiB (Peak: 514.8 KiB) ]