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

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

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

You are not logged in.

Announcement

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


#1 2019-10-28 13:53:52

Diesel
Member

予約台帳を作成しております。

始めまして。
初心者ながら予約台帳を作成しようとしております。
どうぞ温かい目でご教示お願いいたします。

▼環境
└Win10
└FileMaker Pro 17 Advance

▼やりたいこと
【必要数日数分の事前自動レコード生成】
日程TOを主とし、この先1年分の予約台帳を作成したいと思っております。
365日分レコードを手作業で作成するのではなく、事前に作成しておくことは可能でしょうか。
日程レコードにはリレーションにて、複数あるコース内容の集計を表示したいと思っております。
(○月○日はAコースが▲名、Bコースが■名をリスト表示したい)
調べてみましたが検索語が思い当たらずご質問させていただきました。

▼現状
☆・・・キーフィールド
◎・・・リレーション

[日程TO]
☆日程
◎予約受領番号
・コース内容
・各予約内容項目

[予約受付TO]
☆予約受領番号
◎コースNo.
・各予約内容項目

[コース内容TO]
☆コースNo.
・各コース内容項目

どうぞよろしくお願いいたします。


・10281405追記
連立してしまいましたので他方は解決済みとさせていただきました。
こちらにてご返信いただければと存じます。
引き続きよろしくおねがいします。

Last edited by Diesel (2019-10-28 15:05:46)

Offline

#2 2019-10-28 14:52:11

koeda
Member

Re: 予約台帳を作成しております。

コース内容をマスタとして別管理するのは良いとして、日程と予約を2つのテーブルに分ける必要はないのでは?
カレンダーのように日付を365日分持ちたいのであれば、日付をユニークとするテーブルを作るのが良いと思います。
その上で、予約テーブルとは日付でリレーションします。

予約は
予約日、コースNO、予約受領番号、予約内容項目
のフィールドを設けます。

日毎の件数カウント用に、集計フィールドを1つ作り予約受領番号をカウントします。
予約日とコースでソートすれば、各日付とコース別の集計が行えます。

[日程TO]
☆日程

[予約受付TO]
☆予約受領番号
◎日程
◎コースNo
・各予約内容項目

[コース内容TO]
☆コースNo.
・各コース内容項目

Last edited by koeda (2019-10-28 15:06:26)

Offline

#3 2019-10-28 15:05:26

Diesel
Member

Re: 予約台帳を作成しております。

koeda様

ご返信・ご教示ありがとうございます。
実際には[日程TO]には各コースごとに顧客情報(氏名・人数・予約元等々)をリスト表示及び集計したいと思っております。
また、[日程TO]はなるべく編集ができない状況を作りたくあえて分けたいと考えております。

素人考えでは、手入力で[日程TO]全日数分を作成し、ポータルで表示かと思っておりますがいかがでしょうか。。。

Offline

#4 2019-10-28 15:17:24

Shin
Member

Re: 予約台帳を作成しております。

エクセルのフィルタのような機能の実装について
にあるサンプルのような形ではいかがですか。
項目ごと、日ごとの一覧が切り替え表示可能です。

予約のマスターは週ごとに設定、予約は、一覧のクリックで作れますが、もっと細かくしたいでしょうが、そこは拡張してください。そこでの制限も自由に設定可能です。

Last edited by Shin (2019-10-28 15:21:13)

Offline

#5 2019-10-28 15:27:17

koeda
Member

Re: 予約台帳を作成しております。

もちろん正解はいろいろで、以下はもし私が作るならば、という個人的な意見なのでその前提でお読みください。

「予約」は日々追加登録され、その後も変更されたり、キャンセルされたり、更新頻度が高い情報です。
この予約情報はなるべく「予約」のテーブルにまとめ集中管理するのが良いと思います。

「日程」は365レコードをあらかじめ作ってしまえば、追加削除はされませんよね?
「コース」も追加・削除・変更の頻度は比較的低いものと思います。
よって、マスタとして管理し、予約テーブルからは参照ないしはルックアップでコピーして繰り返し利用します。
これら2つはまさにDieselさんが書かれているように、予約入力画面上では簡単に編集できないようデザインします。

日毎の集計、コース毎の集計についても、いろいろな実装のやり方があり正解は1つではありませんが、
#2にも書いたように、「予約」に日付とコースがあれば、これらをソートキーとする集計フィールドを設けることで、
件数をカウントしたり、リストを作成したりが可能になります。

Last edited by koeda (2019-10-28 15:30:46)

Offline

#6 2019-10-28 15:29:59

Diesel
Member

Re: 予約台帳を作成しております。

shin様

ご返信・ご教示ありがとうございます。
目を通しただけですが、近いものに感じます。
一度しっかりと読み込み、理解します。
また不明点があれば質問させていただきたいと思います。

Offline

#7 2019-10-28 15:35:02

チポ
Member

Re: 予約台帳を作成しております。

> 365日分レコードを手作業で作成するのではなく、事前に作成しておく
スクリプトで可能ですが、こんな方法も。

日付フィールドを入力値の自動化で
  Self + 1
  既存値置き換え
と設定しておいて、

  新規レコード作成
  最初の日付 - 1の日付を入力

後はレコード複製を続ければいいです。

レコード複製は、
  Ctrl+D
を押しっぱなしにするだけです。

Offline

#8 2019-10-28 16:30:32

Diesel
Member

Re: 予約台帳を作成しております。

チポ様

ご返信・ご教示ありがとうございます。
ご教示いただきました内容で作成できました。
重ねてお礼申し上げます。

スクリプトで作成できるように精進します。

Offline

#9 2019-10-28 18:06:27

Shin
Member

Re: 予約台帳を作成しております。

一つのコースが複数の日にまたぐ、という事は無いのですか。(セット旅行の予約管理のように見えますが)

日毎テーブルの日付は、表示したい期間日数分のレコードを作り、シリアル値を与えておきます。表示開始日を別に持たせて、それとの計算で日付とします。
予約そのものは、予約1件ごとに1レコードで保存しておき、それを、上の日毎テーブルの中にクロス集計のような形で表示させます。
予約の内容を集計するには、この構造が簡単でいいですよ。

Offline

#10 2019-10-29 08:21:39

Diesel
Member

Re: 予約台帳を作成しております。

Shin様

ご返信ありがとうございます。
また、遅くなり申し訳ありません。

>一つのコースが複数の日にまたぐ、という事は無いのですか。
コースが日をまたぐことはありません。
また、開始時間もすでに決まっているため、時間調整等も必要ありません。

>表示開始日を別に持たせて、それとの計算で日付とします。
度々申し訳ありません。
こちらが理解できませんでした。
どのような検索語で調べれば出てきますでしょうか。

>日毎テーブルの中にクロス集計のような形で表示させます。
クロス集計、調べてみます。

ご指摘いただきましたとおり、一度サンプルを作成してみたいと思います。
ご丁寧にありがとうございます。

Offline

#11 2019-10-29 08:34:53

Diesel
Member

Re: 予約台帳を作成しております。

koeda様

ご返信遅くなりまして申し訳ありません。
また、ご回答ありがとうございます。

今まで[日程TO]に固執しすぎており理解に時間がかかりましたが、ご指摘の通り[予約受付TO]をマスタにする考え方がわかりました。
こちらも一度サンプルを作ってみたいと思います。
重ねてお礼申し上げます。

Offline

#12 2019-10-30 08:44:09

Shin
Member

Re: 予約台帳を作成しております。

作り方によっては、あらかじめレコードを作っておく必要はありませんよ。表示に必要な数十レコードを作っておくだけで十分です。そこに必要なのは、日付を動的に作るフィールドと、項目のリレーションとなるフィールドです。
https://www.dropbox.com/s/x6ouxz5cy0bw6 … 2.zip?dl=0

Last edited by Shin (2019-10-30 10:46:50)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 548.16 KiB (Peak: 569.06 KiB) ]