みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
上記内容なのですが、今までに作ったカレンダーではなく、1から作るという解釈でよろしかったのでしょうか??
今作りかけのフィールドの計算式を、私の計算式に変更すれば、そのまま流用できるはずです。ファイルをコピーして試して見られると良いでしょう。
『date』で日付に変換したものから、『dayweek』で曜日の情報を引き算することにどういう意味があるのでしょうか??
その計算の結果は、カレンダー上の仮想0行目の最終枠(繰り返し位置0に相当)の日付を求めます。これに繰り返し1を加えれば繰り返し位置1の日付が、2を加えれば繰り返し位置2の日付になります。
表示形式が異なったもの(『date』や『dayweek』)の、足し算、引き算はできるのでしょうか?都合よく1日ずつずれてくれるのはなんでなんでしょうか??
FMは、フィールドの中の値の表示上の型には、非常に柔軟です。計算式の中ではさらに柔軟で、適当に型変換をして計算してくれます。
日付の計算については、年月日の形で行うのは非常に面倒になります。そのために、西暦1年1月1日よりの通し日で計算し、その結果を年月日に戻しています。型の設定を誤った際に、735105のような数字になったのは、その結果が見えたためです。
ですから、内部は単なる数字ですので、加減計算は、そのまま数字を加減すれば良いです。(ついでに、日付の平均の計算、なんても可能ですよ)
shinさんに教えていただいた方法には、日付の前に『extend』が含まれていないのですが、繰り返しフィールドにおいて、使わなくても問題ないということなんでしょうか?
私の示した式は、「月末日付」の式を、その年に合わせるように、スマートに書いたものです。式の中にフィールドや変数を使っていませんので、extend() 関数は不要です。
Offline
こんなんじゃダメですかね。いつもの検証不十分 (;_;)
http://pupld.net/21/130906/frno0jjbiu/index.cgi
患者カレンダー.fp7
繰り返しの配置が面倒なので約3ヶ月分だけでしかも連続です。
記入欄の内容をスクリプトで別テーブルに移していて、再表示はルックアップ
なので遅いかも知れません。
Windowsでは罫線が崩れて、画面再表示のような事も起こるようです。
私は日付関係は特に苦手です。
Offline
>shin様
丁寧な解説ありがとうございます。
未熟者なので、まだまだ理解できない部分はありますが、なんとなくわかった気がします。
ありがとうございます。
>旅人様
ありがとうございます。
参考にさせていただきました!
皆様のおかけでもう少しで完成しそうです。ありがとうございます。
これはできれば、何ですが。。。
・カレンダーに記載できるようにするには、ひとつずつテキストボックスを入れていくことになるのでしょうか?(内容は3文字くらい記入できれば十分です)
・祝日も赤字にしたいのですが、難しいですか?
・作成手順として、フィールドを作った後、コピペで一列ずつ作っていったのですが、これより簡便な方法はありますか?
・今年分がベースであれば、来年分を作成するときに手間を省く方法はありますか??(コピペの内容と若干かぶりますが、この作業は玄人でも簡便なやり方はないものでしょうか??)
よろしくお願いいたします。
カレンダーの記載は、旅人さんのサンプルの方法が良いかも。
祝日は、祝日を計算する仕組みが必要です。関数などで計算させるか、祝日を設定するフィールドかテーブルを作ると良いでしょう。
計算で求めるには、 fmpro.jp の Holiday(), Workday() などが使えます。
作成手順は、1レイアウトで作るなら、それしかないでしょう。複数レコードで作るのでしたら、印刷設定で逃げることができます。
来年度を求めるには、
Date ( 1 ; 1 ; Year ( Get ( 日付 ) ) + 1 )に変更すれば良いです。
Offline
ご返信ありがとうございます。
「祝日は、祝日を計算する仕組みが必要です。関数などで計算させるか、祝日を設定するフィールドかテーブルを作ると良いでしょう。
計算で求めるには、 fmpro.jp の Holiday(), Workday() などが使えます。」
祝日を設定するフィールドかテーブルを作る、というのはどうやればよいのかわかりませんでした、すいません。。
計算で求めるという方法は、条件付き書式設定で、
HolidayJ ( self )="みどりの日"&"元旦"・・・
といったように条件を付けて、書式を赤にする。
という作業でしょうか??
想像で書いていますがあっていますか??
カスタム関数は使った事がないので・・・
>祝日を設定するフィールドかテーブルを作る、というのはどうやればよいのか
別のテーブルに1祝日1レコードで全祝日の日付を作成すると
カレンダーの日付とこの祝日テーブルの日付をリレーション
することで関連レコードがあったら赤になどという条件付き
書式が使えますね。
Offline
全祝日をどこかに作り出す必要があります。
http://www.fmpro.jp/fmi/xsl/plugin/cf.x … d&-skip=57
http://www.fmpro.jp/fmi/xsl/plugin/cf.x … d&-skip=59
の式をそのまま利用してもいいですし、adv版をお持ちならば、カスタム関数にしておけばいいでしょう。
not IsEmpty ( HolidayJ ( self ) ) という式で良いのでは。
共有するファイルでないのでしたら、グローバルフィールドに、休日の日付を羅列しておきます。その日付と各繰り返しの日付を比較して、休日に当たれば赤にする、という動きを、条件付書式に追加すれば良いでしょうね。
Offline
ご返信ありがとうございます。
FMをいじる時間がなくて。。。
ちょっとずつ着手しているのですが、祝日のテーブルを作ってリレーションという意味はなんとなくわかるのですが、全祝日の作り方がいまいちよくわかっていないです。
全祝日というテーブルをつくって、レコード(計算・グローバル・日付で表示)をつくって、not IsEmpty ( HolidayJ ( self ) )と入力すればよいということですか??
物分りが悪くてすいません。。
入力の自動化です。 フィールドに日付(2014.1.31)と入力し レコードを新規作成させると フィールドに自動で 2014.2.28 と毎月末を表示させたいです。
アドバイスよろしくお願いします。
翌月末でしたら、
Date ( Month ( 日付 ) + 2 ; 0 ; Year ( 日付 ) )
Offline
[ Generated in 0.008 seconds, 11 queries executed - Memory usage: 587.65 KiB (Peak: 604.55 KiB) ]