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

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

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

You are not logged in.

Announcement

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


#1 2020-05-06 00:25:23

こう
Guest

繰り返しフィールドのlookup内容の表示について

お世話になります。
作成はwindows7、FM Pro13advancedを使用しています。

下記のようなレイアウトの勤務表を作成しておりますが
どうしても解決できないことがあり質問させていただきます。

   1   2   3   4  ~ 31
山田 早出  通常  通常  夜勤   通常
鈴木 通常  日勤  通常  通常   夜勤
佐藤 通常  通常  夜勤  通常   通常


FMで作成されたカレンダーを参考に、下記①テーブルの「日にち表示用繰り返しフィールド、職員名」と②の「勤務日、職員名」とをリレーションさせ
①のスケジュール表示用繰り返しフィールド[31]をlookupを用いて、早出や夜勤などの②のスケジュール内容を表示させようとしているのですがうまくいきません。

リレーション自体は、日にち表示用繰り返しフィールドに関連するスケジュール内容は表示されるのでおそらく問題ないと思います。

①のスケジュール表示用繰り返しフィールド[31]の内容は
Lookup(勤務スケジュール::スケジュール内容 ; "")としてみましたが、ご教授いただけませんでしょうか?




テーブル構成として、以下になります。
①勤務表テーブル
(フィールド)
・ベース日付
・日にち表示用繰り返しフィールド[31](計算フィールドにて作成、ベース日付が2020年5月1日ならば繰り返しフィールド[6]は2020/05/06となる)
・山田などの職員名
・スケジュール表示用繰り返しフィールド[31](勤務スケジュールテーブルのスケジュール内容を表示させるためのlookupを使用した計算フィールド)

②勤務スケジュールテーブル
(フィールド)
・早出、夜勤などのスケジュール内容
・職員名
・勤務日

#2 2020-05-06 01:59:48

Shin
Member

Re: 繰り返しフィールドのlookup内容の表示について

勤務スケジュール側で、スケジュール内容を、計算式繰り返しフィールドに展開しておきます。そのフィールドをlookup関数で参照します。

Offline

#3 2020-05-06 15:08:46

Hiro
Member

Re: 繰り返しフィールドのlookup内容の表示について

現状の回答は、#2>Shinさんの通りですが、
この根本問題は、リレーション集計法を取る際の「苦肉の策」からきています。

SQL集計法にすれば、単独SQL計算式だけで、他の一切の要素を要せず非常に簡潔です。
この具体式例は、
   ExecuteSQL(
      "
         SELECT ""スケジュール内容"" FROM ""勤務スケジュールテーブル"" WHERE ""職員名""=? AND ""勤務日""=?
      "
      ; "" ; ""
      ; 職員名[1]   // ←(Extend(勤務表テーブル::職員名))の略式
      ; 日にち表示用   // ←(勤務表テーブル::日にち表示用繰り返しフィールド[Get(計算式繰り返し位置番号)])の略式
   )

Last edited by Hiro (2020-05-06 15:13:29)

Offline

#4 2020-05-06 15:17:55

Shin
Member

Re: 繰り返しフィールドのlookup内容の表示について

スケジュール表示用繰り返しフィールド[31]を、計算フィールドにせずに、テキストフィールドにしておきます。
自動入力でルックアップに設定すれば、計算フィールドを追加せず、表示できますよ。(変更があれば、再ルックアップします)

Offline

#5 2020-05-07 11:41:37

チポ
Member

Re: 繰り返しフィールドのlookup内容の表示について

勤務スケジュールテーブルで
各職員ごとに、全ての日付のレコードがあるのなら、
1行ポータルを31個横に並べるだけでいいですが。

リレーションは
  職員名
  and
  年月
ですね。

Offline

#6 2020-05-07 15:16:55

こう
Guest

Re: 繰り返しフィールドのlookup内容の表示について

Shin様、Hiro様、チポ様、アドバイスありがとうございます。

スケジュール表示用繰り返しフィールドをテキストフィールドにして、オプションからスケジュール内容をルックアップするよう設定したのですが
空白のままうまくいきません。

最初に仰った勤務スケジュール側でスケジュール内容を計算式繰り返しフィールドに展開し、のところですが
勤務スケジュールテーブルに、31個の繰り返し計算フィールドを別途作成し、計算式をスケジュール内容にするということでしょうか?

#7 2020-05-07 15:18:11

こう
Guest

Re: 繰り返しフィールドのlookup内容の表示について

Hiro様

SQLの構文の「WHERE ""職員名""=? AND ""勤務日""=?」の?はどういう意味なのでしょうか?
SQLの経験がほとんどなく、調べましたがよく分からず教えていただけますと助かります。

また教えていただいた構文を用いますと、一人目の山田のデータが反映されますが
2人目のデータを反映するには構文のどこを修正すればよろしいでしょうか?

#8 2020-05-07 18:44:49

Hiro
Member

Re: 繰り返しフィールドのlookup内容の表示について

#7>こう wrote:

SQLの構文の「WHERE ""職員名""=? AND ""勤務日""=?」の?はどういう意味なのでしょうか?
SQLの経験がほとんどなく、調べましたがよく分からず教えていただけますと助かります。

ExecuteSQL関数のヘルプより抜粋
→『引数:ステートメントには、オプションの引数がクエリーのどこで使用されるかを示す、プログラムに基づいて生成された SQL (ダイナミック引数) を含むことができます。ダイナミック引数を指定する場合は疑問符 (?) を使用します。』

また教えていただいた構文を用いますと、一人目の山田のデータが反映されますが
2人目のデータを反映するには構文のどこを修正すればよろしいでしょうか?

1名1レコードのテーブルだからリスト画面表示でご覧ください。

Last edited by Hiro (2020-05-07 18:53:43)

Offline

#9 2020-05-07 20:17:37

こう
Guest

Re: 繰り返しフィールドのlookup内容の表示について

Hiro様
ありがとうございます。
SQLを使用した方法でスケジュール内容が勤務表に反映されるようになりました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 7 queries executed - Memory usage: 522.26 KiB (Peak: 527.16 KiB) ]