みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
1.環境:filemaker pro12
windows7
2.状況
テーブル[開始時間マスタ]
フィールド<コース> ex.コース1,コース2,コース3...
フィールド<開始時刻> ex. 10:00,11:00,13:00...
テーブル[状況表]
フィールド<現在時刻> get(タイムスタンプ)
フィールド<コース> ex.コース1,コース2,コース3...
フィールド<開始時刻>
上記の様な2テーブルを、互いに2つのフィールドでリレーションしています。
<コース>-<コース>
<開始時刻>-<現在時刻>
3.やりたいこと
例えばタイムスタンプの値が「10:05」だった場合、フィールド<開始時刻>に10:00、
タイムスタンプの値が「12:55」だった場合、フィールド<開始時刻>に13:00、
と自動入力したい
4.現状
ルックアップの近似値「小さい値を使用」にてルックアップして、一応期待の結果は得られている・・・?
5.おねがい
もっとスマートな方法ですとか、この方法では間違っている、といったご指導をいただけませんでしょうか?
よろしくお願いいたします。
>例えばタイムスタンプの値が「10:05」だった場合、フィールド<開始時刻>に10:00、
11:00ではなくて?
10:00が正解だとしたら何分過ぎまでならいいのかな?
Last edited by 旅人 (2015-02-13 17:59:34)
Offline
>旅人さま
そうなんです、ちょっと特殊でして。
10:59:59までなら10:00を正解としたいんです。
なら、特殊なのは12:00〜13:59が13:00になるケースだけということですか。
Offline
「小さい値」でうまくいってるというのが事実なら、
「12:55」だった場合、フィールド<開始時刻>に13:00、
が書き間違いでしょう。
Offline
Get(タイムスタンプ)から時刻を取り出すか、Get(時刻)にして
開始時間マスタに開始時刻+3599という計算フィールドを作って
コース=コースと計算フィールド≥現在時刻でリレーションして
開始時間マスタ側を計算フィールドの昇順ソート指定したら
マスタ::開始時刻でいいかも。
Offline
>waderさま
なんという・・・ご指摘の通り書き間違いです!
>旅人さま
書き間違いにもかかわらずアイディアありがとうございます。
現状使っている
ルックアップの近似値「小さい値を使用」
という方法でもソート順による誤作動が心配でした。
今後マスタの時間が書き換わる可能性もありますし・・・
開始時に昇順ソートはかけて置いた方が良さそうですね。
書き間違いでもいいけど、正しくは何だったのか書いてないので、結局どうしたいのかわかりません。
時単位に切り捨てで、12:00だけは11:00にする、ですか?
コースごとに開始時刻がばらばらなら、結局ルックアップするしかないのかもしれないけど、複数フィールドでリレーションしてる場合には「一致しない場合」がどの値になるのか明示されてないんで不安ですよね...
旅人さんのように、リレーション自体をソートしてしまえば「一致しない場合」を使わないので安心。
Pages: 1
[ Generated in 0.026 seconds, 9 queries executed - Memory usage: 515.22 KiB (Peak: 519.76 KiB) ]