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

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

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

You are not logged in.

Announcement

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


#1 2021-04-06 19:13:24

ウィン
Member

スケジューラーを作りたい。良いアイデアありませんか?

-----スケジューラーを作りたい-----
いつもお世話になっております。今回はボタンバーに開催日を表示して切り替えを行うスケジューラーをJRA-VANのようなデザインで作りたいと考えています。

スケジュールテーブルの情報を基に開催日をボタンバーに入れ込みたいと考えているのですが、合理的な日程表示の計算方法が分からず困っています。
新しい日程が決定する度に使い回しをしたいのでグローバルを用いた汎用性の高いものにしたいです。
良いアイデアはありますでしょうか?

スケジュールテーブルには開催日・開催場を含んだ日程レコードがあります。
現状ボタンバーの設定内の計算でMiddleを用いて開催日を入れている状態です。

テーブル(スケジュール)ファイルは別のマスタテーブルからリレーション
レース番号
レース名
発走時間
開催日
開催回_N日目
馬場の種類
馬場の距離
重量種別
馬齢別

FMA18
FMS19

JRA

Offline

#2 2021-04-07 13:48:57

himadanee
Guest

Re: スケジューラーを作りたい。良いアイデアありませんか?

初期表示はどの日付ですか。
本日を左端にするなら、本日以後だけが対象になる値一覧のリストから最初の6つの値、ですかね。
3つずつずらすのは、あんまりいい方法が思いつかない。全日付のリストから取り出せば簡単は簡単だけど、あんまりリストが長くなるとどうかな。。。せいぜい数年分?

#3 2021-04-07 14:26:46

ウィン
Member

Re: スケジューラーを作りたい。良いアイデアありませんか?

初期表示はスクショのように真ん中にあれば、前後操作しやすいと考えていました。最初の7つの値にして真ん中が良いですね。別日程で検索はいりませんね…
年間通しての競馬開催の日付になります。春夏秋冬に番組があり、時期がくると番組発表があるといった感じです。発表の際はせいぜい3ヶ月分くらいです。

現状はJRA公式サイトのレーシングカレンダーから日程を読み取ってFMレコード内に情報を蓄積しています。
Nowから過去の日程を読み込もうとしても、エラーになってしまうので、スクショの通り3月からしか読み取れていません。

要件は1年分だけ52週の開催だけ必要になってきます。

スケジュールレコード内の開催日が複数あって、日付をリスト化する方法はどのようにしたら良いのでしょうか?
例えば
20210328
20210328
20210328
20210328
20210328 2021/03/28
20210403
20210403
20210403
20210403  2021/04/03
20210404
20210404
20210404
20210404
20210404
20210404  2021/04/04

複数日程を絞り込んだら、その日付をボタンバー設定に計算で入れ込めないかと思ったのですが…
日付を入れ込めたとして、二場開催の時、三場開催の時など課題はあります…ここは「次の場合にオブジュクトを隠す」を駆使しようかと思っています。

Last edited by ウィン (2021-04-07 14:31:55)

Offline

#4 2021-04-07 15:47:10

Shin
Member

Re: スケジューラーを作りたい。良いアイデアありませんか?

基準日 というグローバルフィールドを用意して、そこから自己リレーションを2個用意します。とりあえずは、基準日は現在の日付にしておきます。
基準日 ≤ 開催日(リレーション1)
基準日 > 開催日(リレーション2)
そのリレーションを通して、
RightValues ( SortValues ( UniqueValues ( List ( リレーション1::開催日 ) ; 3 ) ; 3 ) ; 3 ) & LeftValues ( SortValues ( UniqueValues ( List ( リレーション1::開催日 ) ; 3 ) ; 3 ) ; 4 )
という文字列で、1行目、2行目... が目的の日になります。それをボタンバーの項目名にして、さらにスクリプトで呼び出して、フィルターにすればいいでしょう。
中心の日を変更するには、基準日を変更すればいいので、ボタンバーでクリックすればその日を設定すれば動的に動かせます。

Last edited by Shin (2021-04-07 17:35:25)

Offline

#5 2021-04-07 19:18:03

ウィン
Member

Re: スケジューラーを作りたい。良いアイデアありませんか?

せっかく考えて頂いたのに再現出来ませんでした。「特にボタンバーの項目名にする」が分かりません。

大変お手数かと思いますが、スケジュールファイルをお預けいたしますので、お手本をお願い出来ませんでしょうか。

Last edited by ウィン (2021-04-08 10:32:55)

Offline

#6 2021-04-08 09:54:27

Shin
Member

Re: スケジューラーを作りたい。良いアイデアありませんか?

https://www.dropbox.com/s/lgfm56s81yrtv … 2.zip?dl=0
動きは、こんな感じかな。

Last edited by Shin (2021-04-08 23:33:29)

Offline

#7 2021-04-08 10:40:52

ウィン
Member

Re: スケジューラーを作りたい。良いアイデアありませんか?

お手数おかけしました。ありがとうございました。
Listで日数を絞り込むまでは出来たのですが、その先手法が分かりませんでした。
サンプルを出して頂くとなるほど理解出来ました。

SortValuesとUniqueValues関数は割と新しい関数なのですね。色々調べていたら、ポータルを活用する人にとっては大変重宝する関数であることが分かりました。

このボタンバーの設定の手法はかなり応用が効きそうなので、どんどん使っていきたいと思います。

Offline

#8 2021-04-08 22:03:32

ウィン
Member

Re: スケジューラーを作りたい。良いアイデアありませんか?

サンプルのおかげで徐々に理想の動作になってきました。
クリックした日付がセンターにくるようになるのですが、アクティブセグメントがズレてしまい、指定している日付選択を勘違いしてしまうような感じになってしまいました。

試しにアクティブセグメントを「指定」にしてボタンオブジェクト名を指定したら、センターにくるようになったのですが、スケジュールの端を選択した時がアクティブにならない状態です。
Caseを用いたら変わりますかね…

Last edited by ウィン (2021-04-08 22:10:54)

Offline

#9 2021-04-08 23:25:10

Shin
Member

Re: スケジューラーを作りたい。良いアイデアありませんか?

ボタンバーの中のボタンのセンターにオブジェクト名をつけて、アクティブセグメント の設定で、そのオブジェクト名を指定すればいいです。
基準日から過去、将来とも十分な数があるという前提の式ですので、数が揃わないとアクティブセグメントと実際がずれてしまいます。適当に対策してください。

Last edited by Shin (2021-04-09 08:50:53)

Offline

#10 2021-04-09 09:15:21

ウィン
Member

Re: スケジューラーを作りたい。良いアイデアありませんか?

最初の方だけがアクティブにならないだけなので、変にいじってこじらせないようにします。
時期がくれば、将来的な日程がどんどん追加されていくので適当に対策いたします。

ありがとうございました!

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 527.94 KiB (Peak: 548.84 KiB) ]