みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。win7、FM13advancedを使用しています。
社内共有で使うカレンダー型の予約管理システムを作っており、1日あたり2名までしか予約できないようしているのですが
複数のユーザーが同時に予約したときに2名以上登録できてしまいます。
その為、登録処理時にポータル予約者名が3レコード以上存在したらそのレコードは削除するようにしましたが、
スクリプトデバッガで確認するとポータルレコードの削除まで処理は進んではいますが、実際は削除されていません。
この場合どうすればポータルレコードの削除ができますでしょうか?
構成として
カレンダーテーブル
・KEY日付
・ログインユーザー
スケジュールテーブル
・予約日
・予約者名
KEY日付と予約日でリレーションさせています。
カレンダー内にスケジュールテーブルの予約者名フィールドをポータルで表示しており、
カレンダーの日付をクリックしたらログインユーザーの値をポータルの予約者名に格納することで予約させています。
分かりにくい説明で申し訳ないのですがどうぞよろしくお願い致します。
Offline
いちばん簡単なのは、先に予約枠のレコードを作ってしまい、ユーザーにレコードを作らせない事で、1日2人が厳密に守られます。ユーザーにはそれに情報を入力をさせることでしょう。
また、予約枠に入力するためにそのレコードのフィールドに入っていると、排他がかかり、共有している他のユーザーはそのレコードに入る事が出来なくなります。
先行してレコードを作っていく作業が必要ですが、確実な方法でしょう。
ユーザーにレコードを作らせる運用にするのでしたら、新規のポータル行に入った直後に、一旦レコードを保存してしまい、もう一度そのポータル行に入るようにすると、他のユーザーからも予約入力中も含めたレコード数が認識されますので、3レコード目が作られないように処理できます。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 551.87 KiB (Peak: 589.35 KiB) ]