みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもこのサイトを参考にさせていただいております。
当方、スケジュール管理をFM(FMP14、Win7)にて作成しているのですが、
ID (テキストで連番)
担当者 (テキスト)
日付 (日付)
開始時間 (時刻)
経過時間 (数字)
終了時間 (計算:時刻)
用件 (テキスト)
スケジュールは日付をまたぐことはありません。
「経過時間」を入力し、終了時間を計算にて入力するようにしています。
スケジュールが重複(ダブルブッキング)しないようにしたいのですが、
方法がまったくわかりません。
考えたのは、追加で以下のフィールドを作成し、
開始時間_ts (計算:タイムスタンプ)で「GetAsDate(日付)&" "&GetAsTime(開始時間)」
終了時間_ts (計算:タイムスタンプ)で「GetAsDate(日付)&" "&GetAsTime(終了時間)」
担当者・上記のタイムスタンプで重複の確認が取れそうな気がしたのですが、
①上の3つのフィールドでの重複チェック方法
②「開始時間」と「終了時間」の間にスケジュールをとった場合、重複とみなさないためそのときの処理(設定)
が、わからず、途方にくれています。よろしければご教授いただけませんでしょうか
重複判定のフィールドで自己リレーションして、
照合する関連レコードが有れば重複と判定できます。
担当者はもちろん
=
でいいのですが、
範囲の判定は
開始時間_ts <= 終了時間_ts
and
終了時間_ts >= 開始時間_ts
これが照合されれば重複です。
Offline
ああ、書き落としました。
リレーションに自身を照合させると、
レコード確定の前後で結果が異なります。
ご注意を。
Offline
チポ様
ご教授ありがとうございます。
お恥ずかしながらなんですが、それ以前の問題でした・・・・
重複判定のフィールドで自己リレーション
重複判定のフィールドがいるということですか?
必要とすれば、
重複判定フィールド = 重複判定フィールド
担当者 = 担当者
開始時間_ts <= 終了時間_ts
終了時間_ts >= 開始時間_ts
とするのでしょうか?すみません。
すみません。重複判定フィールドをリレーションしてもという感じですね。
担当者 = 担当者
開始時間_ts <= 終了時間_ts
終了時間_ts >= 開始時間_ts
ということでいいのでしょうか?
あとは重複判定フィールドで計算式ということでしょうか
リレーションは
担当者 = 担当者
and
開始時間_ts <= 終了時間_ts
and
終了時間_ts >= 開始時間_ts
ですね。
Offline
チポ様
ありがとうございます。
度々、申し訳ありません。
ファイルメーカーでの重複と判断する方法なのですが、
この場合、例として「重複」というフィールドを作成し、計算式になるのでしょうか?
ファイルメーカーのヘルプでは、if文を使用していますが、このような場合もそうなるのでしょうか?
また、
重複と判断されるタイミングは、
入力確定後になるのでしょうか?それとも(この場合は)「担当者」「開始時間」「終了時間」の入力が確定したときに
重複と判断されるのでしょうか?
重複判定は
Count (自己リレーション::担当者 ) = 2
の真偽でできます。
これはレコード確定後に正しく判定されます。
各フィールド入力直後に結果を出すのなら、
リレーションの照合に
ユニーク ≠ ユニーク (各レコードでユニークな値のフィールド)
を加え、
Count (自己リレーション::担当者 ) = 1
とすればいいでしょう。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 516.2 KiB (Peak: 520.74 KiB) ]