みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも参考にさせていただいています。
FMP16、win8.1で作業をしています。
現在、予約システムを作成しているのですが、予約枠を値一覧で選択するにあたり
同じ日付で一度使用された時間枠を値一覧に表示しないようにしたいです。
1予約につき1レコード使用しています。
以前のトピックhttps://fm-aid.com/bbs2/viewtopic.php?id=1987も参考にさせていただいたのですが、
うまくいきません。
ご協力お願いします。
Offline
テーブル構成やマスタ関連が不明ですが、下記で多分出来てる?
検証不足。
前提として
・時間マスタを利用。
・予約テーブルの自己リレを作成
*時間マスタ作成
時間フィールドを作成
レコードリスト例
時間F:10
時間F:11
時間F:13
*リレーション構成
予約テーブル(日付)=(日付)自己リレ予約テーブル
予約テーブル(LIST)≠(時間)オカレンス::時間マスタ
*予約テーブル必要構成:
日付(日付F)
時間(数字F)
LIST(計算フィールド) 計算式:List ( 自己リレ予約テーブル::時間 )
*レイアウト
1:値一覧を作成(時間)
フィールドの値を使用:オカレンス::時間マスタを使用
次のテーブルから関連レコードの値のみを含める「予約テーブル」
2:時間フィールドに、値一覧を指定
で一応出来ましたが、抜けがあるかも。
最後にスクリプトトリガを仕込んで、レコード確定と、ウインドウ内容の再表示を仕込んだ方がいい?
Last edited by tomato (2017-08-09 19:37:05)
Offline
tomato様
ありがとうございました。
おかげさまで希望通りのものができました。
ところで、「最後にスクリプトトリガを仕込んで、レコード確定と、ウインドウ内容の再表示を仕込んだ方がいい?」の部分ですが、
レコード確定をしないと値一覧の更新がされず、選んだ時間枠が表示されてしまうから
選択後にスクリプトトリガでレコード確定したうえで再表示をさせるということでよろしいですか?
ちなみに、ほとんどないとは思うのですが、レコード確定前に同時に同日・同時間枠を選んでしまった場合にはどうしようもないのでしょうか・・・。
スクリプトトリガでレコード確定をした段階でLIST(計算フィールド)と時間(数字F)を比較して、
一致するものがある場合はエラー(カスタムダイアログ)を表示させる方法で対応出来るのかな(?)と考えましたがいかがでしょうか?
何度もお手数をおかけしますがよろしくお願いします。
Offline
LIST計算式ですが、List ( 自己リレ予約テーブル::時間 ) を 0 & ¶ & List ( 自己リレ予約テーブル::時間 )に変更等が必要かもしれません
設定日に時間が1つも設定されていない場合に非表示になってしまうので?未検証ですのでご確認ください。
レコード確定はおっしゃる通りです。
同時入力については、今時間がないので検証できませんが、そんな感じで良いのでは?と思います。
一度テストファイル等でお試しください。
Offline
tomato様
お忙しいところありがとうございます。
設定日に時間が1つも設定されていない場合の動作ですが、現象は確認していたので、
LIST計算式にcase関数で自己リレ予約テーブル::時間が空欄でない場合はList ( 自己リレ予約テーブル::時間 )、自己リレ予約テーブル::時間が空欄の場合はスペースを入力
というやり方で対応しています。
今のところ問題なく動作しているようなので様子を見させてもらいます。
問題が出てくるようでしたら、tomato様のやり方でやらせていただきます。
わざわざありがとうございました。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 507.97 KiB (Peak: 514.69 KiB) ]