みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
現在、ちょっとづつ勉強してるのですが、条件式書式でどうやってもうまくいかず、悩んでおります。
■質問
*貸出テーブル:
本ID、貸出予定日、返却予定日
貸出レイアウトで、本ID:K01を2014/6/1~2014/6/2 まで借りたいレコードを作成しました。
*スケジュールテーブル:
本ID、フィールド1日目、フィールド2日目
スケジュールレイアウト:
スケジュールレイアウトには、グローバルフィールドでヘッダ部分にYYYYフィールド(年)、MM(月)のフィールドを用意し
2014年、6月と選択してたとします。
リスト形式で表示されている
本ID:K01レコードのフィールド1(1日目)、フィールド2(2日目)に
条件式書式で黒色をつけたいのですが、どうすればうまくいきますでしょうか?
以下のような感じでしたのですが、根本的に間違ってる気がして・・・
フィールド1(1日目):条件式_計算
貸出::貸出予定日 ≤ Main::YYYY & "/" & Main::MM & "/" & "01" and 貸出::返却予定日 ≥ Main::YYYY & "/" & Main::MM & "/" & "01"
フィールド2(2日目):条件式_計算
貸出::貸出予定日 ≤ Main::YYYY & "/" & Main::MM & "/" & "02" and 貸出::返却予定日 ≥ Main::YYYY & "/" & Main::MM & "/" & "02"
日付を数値に置き換えての計算が解りやすいと思います
計算用フィールドとして追加されてはいかがでしょうか
2014/6/1 → 20140601
デフォルトでは、リスト形式の色付けはなかったような?
スケジュールテーブルが何のためにあるのかよく分からない。
フィールド1日目、フィールド2日目とは?
>2014年、6月と選択
つまり1か月分のスケジュールの表示でしょう。
繰り返し31にした方が簡単そうだけど。
返却されるまでは次の貸し出しレコードはできないとして、過去の貸し出しの表示は不要か...
スケジュールには 31までフィールドが作られるのでしょうかね。
書かれているとおりの仕様だとこんな感じでしょうか。
Last edited by Moz (2014-05-24 09:07:31)
Offline
どのタイミングで色を付けたいのかがわからないのですが。
> Main::YYYY & "/" & Main::MM & "/" & "01"
比べるのが日付なので Date ( Main::MM ; 1 ; Main::YYYY ) でよいのでは。
他には Evaluate ( Main::YYYY & "/" & Main::MM & "/" & "01" ) とか。
ガントチャートにするなら、繰り返しのほうがいいのでは。
Offline
皆様、アドバイスありがとうございます。
仰るようにガントチャートのような形です。
FM12始めたばかり様、フィールドそれぞれに条件式を追加したいと考えております。
Traveller様、表示用のフィールドです。
tim様、仰るような仕様です。但し、過去と未来の予定も見たいと思っています。
keima様、なるほど、Date関数で日付を確定するのですね。
Moz様、サンプルのご提示助かりました。非常に参考になりました。
その上で、難点がいくつか。。
1:現在、Moz様にご提示頂いた方法で作成したところ、本IDに初めて追加された貸出データの値がスケジュール上で色づけされます。
しかし2回目以降に同本IDに追加された貸出データの値に色が付きません。
したいことは、過去、未来においても同じ本IDレコード上でみたいとおもっています。
またスケジュールレイアウトの年、月を変更したら、その年・月に該当する貸出レコードと判定して色づけを行いたい感じです。
例:
(貸出1レコード目)本ID:06 2014/05/01~2014/05/06
(貸出2レコード目)本ID:06 2014/05/08~2014/05/14
(貸出3レコード目)本ID:06 2014/05/19~2014/05/21
上記はあくまでも例ですが、貸出:3レコード分をスケジュールレイアウト:本IDレコード上の1~31こあるフィールドに
複数レコード分色づけしたいと考えております。
正直蓄積していけばもっと本IDに関連する貸出レコードは存在していきますが。。
*貸出予定日、返却予定日の日付が重なることは絶対ございません。
2:現在、Moz様仰るとおりフィールド1、フィールド2・・・が31個ございます。
繰返フィールドを使ってない理由は、特になく使ったことないので、単純にこういう場合、日付フィールドでするのかな?と
日付フィールドを31個適当に作ってみた感じです。
こういう場合、ベストなフィールドタイプは何でするべきでしょうか?またそれを繰返フィールドとしてするべきでしょうか?
一時的な表示を行うだけの物ですので、各予約レコード毎に繰り返しフィールドへ展開し、それを集計する機構が最適だと思います。これですと、1回の設定で終わります。
ほぼ同じテーマがありましたので、参考にされると良いでしょう。
https://fm-aid.com/bbs2/viewtopic.php?id=962
サンプルフィアルを少し触ると、お望みの事がそのまま出来るはずです。
また、表示をクリックする事で、予約レコードを作成する動作が組み込まれています。
Last edited by Shin (2014-05-24 14:52:25)
Offline
繰り返しとトリガを使った苦しいサンプル
1ヶ月以上の貸し出しには対応していません。
ダブルブッキングにも対応していません。
http://pupld.net/21/140524/dj8ccrd5ay/index.cgi
貸し出しリスト.fmp12
Shinさん、ありがとうございます。
サンプル見てみましたが、正直さっぱりわからず、ちょっと理解するのに時間が掛かりそうです。。
DBとフィールド定義等は未だ理解できませんが・・・
要するに、
貸出レコードをリスト形式でサンプルのように同IDののみを表示するレイアウトを用意して
その値をスケジュールに反映するという意味なのでしょうか。。
>>また、表示をクリックする事で、予約レコードを作成する動作が組み込まれています。
これも実装できたらなーと思ってたのですが、ご提示頂いたサンプルではできませんでした。
仰ってる意味がもしかして、まったく理解できてない可能性があるので、もう少し考えて見ます。
Traveller様、ありがとうございます。
1ヶ月以上となると、また条件が変わるのですね。。。なんだか凄く色々な作り方がありそうで難しそうですね。。
まだファイル拝見したところなので、食事してからじっくり考えたいと思います。
本当に助かります。また質問したらすいません。
集計用のフィールドをクリックすると、それで新しいレコードが作られるはずですが。
事例に合わせて新しいサンプルを作りました。通常必要そうな機能を追加してあります。
https://dl.dropboxusercontent.com/u/926 … 16.fp7.zip
開始日付を設定して使って下さい。繰り返し数を調整すれば、2ヶ月とか3ヶ月の表示も可能です。
開いている所をクリックすれば、それと連続した空き日付を表示し、そこをクリックすれば予約でき、それ以外をクリックすればリセットされる動作を組み込む事で、ダブルブッキングを防いでいます。
また、既存の予約をクリックすると、その予約を削除出来ます。
https://www.dropbox.com/s/sbyx0jvq3ipso … 7.zip?dl=0
Last edited by Shin (2017-07-26 11:40:19)
Offline
Pages: 1
[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 546.95 KiB (Peak: 567.85 KiB) ]