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

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

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

You are not logged in.

Announcement

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


#1 2016-08-11 08:21:54

ポータルに表示されるデータの順番を繰り返しフィールドの値順に表示する方法

お世話になります。初めての投稿となりますが、宜しくお願い致します。

現在、リレーショナルで繋がった二つのデータベース、「クラス」と「生徒」があります。
「クラス」と「生徒」は両方とも【生徒番号】で繋がっています。
「クラス」には生徒番号が繰り返しフィールドとして設けられており、生徒が登録する毎に繰り返しフィールドに生徒番号が入力されていきます。
(10個の繰り返しフィールドがあり、3名生徒がクラスに登録した場合、上から3つの繰り返しフィールドに生徒番号が入る形です。)
どの生徒が登録してきたかを確認するため、生徒名などの情報を繰り返しフィールドの隣にポータルで表示しています。

問題は、ポータルに表示される情報を、繰り返しフィールドに入っている値と同じ順番で表示する所です。
ポータナルでのソートやフィルターを用いても解決できず、下記の計算式を用いて、繰り返しフィールドに入っている内容から順番をつけ、その順番をポータル内でソートすることで合わせる方法も試してみましたが、最初の方は正しく表記されるものの、レコードが進むにつれてズレが生じてしまいます。

Let ( [
list = List ( class::student_no ) ;
students = student_no;
sort = ValueCount (Left(list; Position(list;students;1;1)))
];
sort
)

クラスの【生徒番号】繰り返しフィールドに入った値の順番のまま、ポータル内の【生徒番号】を表示させる方法というのはありますでしょうか?
(例:繰り返しフィールドに生徒番号:1, 3, 2, 5, 10と入っている場合、その生徒番号の順番通りにポータル内に該当生徒の情報が表示される形です。)

説明が分かり難く、恐れ入りますがご教示いただけましたら幸いです。
宜しくお願い致します。

Offline

#2 2016-08-11 09:20:38

旅人
Member

Re: ポータルに表示されるデータの順番を繰り返しフィールドの値順に表示する方法

繰り返しを使っているのが間違いでしょう。
もう一つテーブル(仮名-明細)を作ってクラス、生徒番号、生徒名などのフィールドを用意し
これとクラステーブルのクラスフィールドでリレーション、明細テーブル側はリレーションで
のレコード作成を許可して、クラステーブルの明細ポータルに直接入力すべきかと。

Offline

#3 2016-08-11 12:44:50

Re: ポータルに表示されるデータの順番を繰り返しフィールドの値順に表示する方法

旅人さま、

早速有難うございました。
既に稼働してしまっているDBなので、出来るだけ現在の構造のままで解決法があればと思ったのですが、やはり繰り返しフィールドから離脱するのが一番早い解決方法かもしれませんね。。。
もし何かアイディア等ありましたら、ぜひ教えて下さい!

Offline

#4 2016-08-11 12:55:15

Shin
Member

Re: ポータルに表示されるデータの順番を繰り返しフィールドの値順に表示する方法

生徒情報の表示がポータルでなくての良いのなら、繰り返しフィールドへルックアップしていく、という方法で逃げられそうですが。

> クラス毎の繰り返しフィールドの内容を「値一覧(クラス別の動的値一覧)」に取り出せば
値一覧に取り出しだ時点で、その内容でソートされてしまうはずですが、逃げる方法があります?例の頭にスペースですか?

Offline

#5 2016-08-11 13:18:35

旅人
Member

Re: ポータルに表示されるデータの順番を繰り返しフィールドの値順に表示する方法

>出来るだけ現在の構造のままで解決法があればと思ったのですが
一刻も早く作り替えた方がいいですよ。
あとで集計とかが必要になったとき結構苦労します。
クラステーブルから別テーブル(関連)にクラス、番号、年月?などのフィールドを
繰り返しをバラしてインポートするだけで1クラス1生徒が1レコードになるので、簡単
にポータル入力に変更出来ます。
今の繰り返しへの入力と殆ど同じ感じになります。

Offline

#6 2016-08-11 13:27:36

Hiro
Member

Re: ポータルに表示されるデータの順番を繰り返しフィールドの値順に表示する方法

・ポータルに表示なら
クラス毎に、その繰り返しフィールドの内容で「カスタム値の値一覧」をクラス数分作り、
クラス毎の個々ポータルのソート条件にその呼応するカスタム値一覧をそれぞれ指定する。

・繰り返しフィールドに表示で良いなら
面倒なポータル表示でなく、繰り返しフィールドに表示でも良いならかなり楽?
繰り返しフィールドのルックアップ特性機能を利用します。
また、ルックアップ値の自動更新が必要ならLookup関数の計算フィールドにして計算結果を非保存設定します。
詳しい設定要領は、「Lookup集計」をキーワードに過去ログのサンプルをご覧ください。

Offline

#7 2016-08-11 13:29:39

Shin
Member

Re: ポータルに表示されるデータの順番を繰り返しフィールドの値順に表示する方法

ポータルの内容から繰り返しフィールドを計算で表示し、繰り返しフィールドの内容を編集可能にする、という風に発想を逆転してみました。見た目も操作性もあまり変わらないと思います。
旅人さんの提案の様に、中間テーブルを置いて管理しています。また例の、入力の出来る計算フィールド、のテクニックを使っています。
削除すると、空き行は作られず、下の行が上に詰められて表示されますので、意図と少し違うかもしれません。
https://www.dropbox.com/s/c7wjt2z2ri6oe … 7.zip?dl=0

Last edited by Shin (2016-08-11 17:48:51)

Offline

#8 2016-08-11 16:27:44

Hiro
Member

Re: ポータルに表示されるデータの順番を繰り返しフィールドの値順に表示する方法

生徒テーブル側に表示順位を算出する別法による「ポータル表示順指定」サンプルを
アップしましたので、ご覧ください。

●サンプル「繰り返しフィールドでソート順指定.fmp12」→ http://yahoo.jp/box/047fhS

Last edited by Hiro (2016-08-11 16:29:44)

Offline

#9 2016-08-12 00:58:06

Re: ポータルに表示されるデータの順番を繰り返しフィールドの値順に表示する方法

皆様、色々なアイディアを有難うございます。

Shin様:中間テーブルを置いて管理する方法、なるほどです。サンプルも有難うございます!ちょっと勉強してみます!

Hiro様:サンプル有難うございます!ちょっと考えていなかった方法でしたので面白いです。勉強します!

旅人様:やはりポータルへの変更を早めに進めた方が良いと実感しています。有難うございました!

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 565.11 KiB (Peak: 579.75 KiB) ]