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

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

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

You are not logged in.

Announcement

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


#1 2015-12-29 10:31:32

たく
Guest

横表示

よろしくお願いします。

テーブル1には、
社員id
日付

ステータス

テーブル2には
社員id
day1
day2
day3
...
day31

とあります。やりたいことは
テーブル1の月と社員idで検索をかけて
出てきた検索結果をテーブル2のday1からday31までに割り振って
そのステータスを表示させたいことです。


テーブル1で
月 1
社員id 1111

で、検索。

テーブル2のフィールドが横に並べられているので
そこに表示

day1 day2 day3 day4 ... day31
○  ○ ×  ○   ○

と、行った具合にしたいのですが…
要は横に表示させられるのでしたら違う方法も教えてください。
よろしくお願いします

#2 2015-12-29 15:57:57

旅人
Member

Re: 横表示

簡単なのはday1〜31を日付の繰り返しフィールドにして
結果を表示するフィールドも繰り返しにして
社員idとともにリレーションして再ルックアップする。
テーブル1での検索は不要です。

Offline

#3 2015-12-30 11:20:49

たく 1
Guest

Re: 横表示

回答ありがとうございました。私の説明が今一つで大変申し訳ありません。

再ルックアップの仕方が良くわからなくて
「フィールドday_1」に基づいて値をルックアップするフィールドがありません」といったエラーが出て来てしまいます。

私なりに現在考えた内容です。

テーブル1には 社員ID、日付、ステータス(○or×)、月が入っています。

社員ID    日付    ステータス    月
1111    12/3    ○        12
1112    12/3    ×        12
1113    12/3    ○        12
1111    12/4    ○        12
1112    12/4    ○        12
1113    12/4    ×        12



テーブル2には 社員ID、day_1~day31までのフィールドが有ります。
中身は空です。


スクリプトでまず テーブル1の社員IDと月で検索をかけます。
結果に対して日付でソートをかけます

社員ID    日付    ステータス    月
1111    12/1    ○        12
1111    12/2    ×        12
1111    12/3    ○        12
1111    12/4    ○        12
1111    12/5    ×        12



1111    12/31    ×        12

レコード/検索条件/ページへ移動[最初の]
変数$i=1
loop
変数$syainIDにテーブル1:社員ID
変数$dayにテーブル1:日付
変数$staにテーブル1:ステータス
を代入して

レイアウトをテーブル2に切り替えて

フィールドを名前で設定で["テーブル2:day_"&$i;$sta]
変数を設定[$i;値:$i+1]

レイアウトをテーブル1に切り替えて
レコード/検索条件/ページへ移動[次の;最後まで来たら終了]
end loop
で、テーブル1のステータス情報をテーブル2のday_$iに代入していっています。

レイアウト テーブル2は
1日   2日   3日   4日 ・・・・ 31日 ← テキストです。
day_1 day_2 day_3 day_4 ・・・ day_31
と、フィールドを横に設定しています。

結果レイアウト テーブル2の表示が
1日   2日   3日   4日 ・・・・ 31日
○  ×  〇  ○      ×

と、横表示に見せていますが、問題として

1・上記のスクリプトだと元データが変わった時にリレーションが組まれていないので最新情報がレイアウト2に表示されない。
2・複数の社員IDを一覧表示しようとした場合、時間が掛かるのではないか?
3・そもそも、もともとあるデータを複製するのはムダではないのか?

と、考えてしまいます。

横表示をする何か良い手立てはないものでしょうか?
宜しくお願い致します。

#4 2015-12-30 12:26:21

Shin
Member

Re: 横表示

FM13以降ならば、繰り返しフィールドへ展開して集計、という手法があります。別テーブルは不要です。
https://dl.dropboxusercontent.com/u/926 … .fmp12.zip

この手法ですと、懸念されている事は解決できると思います。

ついでに、展開している一覧表からデータの編集が出来る様なトリックを組み込んであります。

Last edited by Shin (2015-12-31 23:59:41)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 11 queries executed - Memory usage: 509.42 KiB (Peak: 514.33 KiB) ]