みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
質問が既出でしたらすいません。
過去トピをうまく探しきれてない場合は教えていただける幸いです。
カレンダーの作成がうまくいかず、困っています。
作りたいカレンダーは、
・7×5~6の表形式
・土日はわかるように色を変えたい(できれば祝日も)
・書きこめるスペースはほしい(手書きでも可)
・1ページには半年分載せたい
・タブで残り半年分も表示できるようにしたい
といった感じです。
初心者には向いていないと聞き、エクセルやワードで作ったカレンダーをメタファイルやエクセルファイルで貼り付けてみたのですが、PDFで印刷すると画質が悪くて困っています。
結局はFMで作るしかないのかと思い、方法をご教示いただきたい所存です。
スクリプトが必要な場合はなるべく細かく教えていただけるとうれしいです。言葉を理解することも調べながらな状態なので。。。
よろしくお願いいたします。
すいません、環境はwindows7 ファイルメーカー11アドバンスです。
私も現在カレンダー作成中です.
初心者のためとても困っており,大変難しいです.
こちらのサイトがスクリプトなども詳しく載せてくれていますので,参考にさせていただいたらどうでしょうか?
記事の作成中らしいのでその点はご注意ください.
http://66w.filemaker-go.jp/calendar/cre … ar-part01/
またこのような質問掲示板があり,サンプルをダウンロードすることが可能ですよ.
私は初心者すぎて,いまだにサンプルを参考にしきれていませんが・・・
http://forums.filemaker.com/posts/1d97a9c086
すいません、一度見たことがあるサイトだったのですが、そこに書いてある文章も難しくて理解できないのです。。
もう少しわかるように書いてあるところはないものでしょうか?
一度、スクリプトを組んでみたのですが、上手く動かず、どこがおかしいのかもわからず。。でして。。
申し訳ないです。
どのような目的に使うカレンダーなのですか。
レイアウトは広く取れるけど、入力欄もあって1ページに半年分を表示とは
画面サイズによっては不便なような気もしますが用途次第?
Offline
1年1レコードだから、スクリプトは特に無くても
祝日は毎年変わるから、書き込みスペースに入れればいいのでは。
色を替えるのは条件付書式で
Offline
ご返信ありがとうございます。
目的は、患者さんのスケジュール管理です。
書き込み欄と言っても、書く内容は数字をひとつ(①とか②とか)書き込む程度のスペースがあればよいので、スペースはほとんどなくて問題ありません。
ベースのカレンダーすらを作る能力がないのです。
条件付書式の方法もエクセルならわかるのですが、FMだとわからなくて。
よろしければご教授いただけないでしょうか??
すいません、一度見たことがあるサイトだったのですが、そこに書いてある文章も難しくて理解できないのです。。
もう少しわかるように書いてあるところはないものでしょうか?
一度、スクリプトを組んでみたのですが、上手く動かず、どこがおかしいのかもわからず。。でして。。
申し訳ないです。
http://www.russ.jp/stepbbs/step.cgi?mode=view&no=985
こちらの質問者の方は,おそらく以前紹介したサイトを利用されていると思います.
こちらの質問者の方の書いてあることも難しいでしょうか?
>目的は、患者さんのスケジュール管理です。
患者一人のレコードにその患者専用のカレンダーが必要ということですか。
Offline
ご返信ありがとうございます。
そちらに書いてあることは見たことがありませんでした。
今日、読んでみます(読んで考える時間が必要なので。。)
そうです、患者一人につき、1レコード、それに伴う年間カレンダーが必要なのです。(半年分×2⇒両面印刷すると、1枚にまとまるので)
よろしくお願いいたします。
患者一人につき、1年毎に1レコード? それとも、1日ごとに1レコード?
前者ならば、繰り返しフィールドを12×2作れば済むような。
Offline
ご返信ありがとうございます。
前者です。(治療スケジュールが変わるたびに上書きで修正は行いますが)
しかしながら、勉強不足でして、『繰り返しフィールドを12×2作れば済む』の意味が理解できませんでした。
ご教授よろしくお願いします。
教えていただいたHPを見てみました。
以下、コピペ
作業を行った日を一目でわかるようにカレンダーで色分けしたいと思っております.
そこで調べながらカレンダーを製作しました.
カレンダーというテーブルに
本日日付
月末日付
というフィールドを設定しました.
本日日付=Get(日付)
月末日付=Date ( Month( Extend( 今日 ));0; Year( Extend( 今日 )))- DayOfWeek(Date( Month( Extend( 今日 ));0; Year( Extend( 今日 )))) + Get( 計算式繰り返し位置番号 )
月末日付は繰り返し42回
レイアウトで月末日付の繰り返しの表示を1-7,8-14,15-21,22-28,29-35,36-42とした6段並べて,日にちの数字だけ表示するようにしております.
以上の作業でカレンダーのように7日毎で表示されるものが完成しました.
と、書いてあるのですが、疑問点だらけで、泣きそうになっています。
・作成したフィールドのタイプは、両方とも『日付』、『グローバル格納ON』でよいのでしょうか?
・月末日付の式の中で『今日』とでてきているのですが、それまでの記述の中では『今日』は定義されていません。本日日付のことなのでしょうか?
・繰り返しフィールドというのは、フィールドのオプションにある『データ格納』の『最大繰り返し回数』に42といれればよいのでしょうか?
・『レイアウトで月末日付の繰り返しの表示を1-7,8-14,15-21,22-28,29-35,36-42とした6段並べて,日にちの数字だけ表示するようにしております.』については意味がわからないです。
・ここまでできないので、色分けどころではない。。
初心者すぎて申し訳ないのですが、誰か助けてください。お願いします。
教えていただいたHPを見てみました。
以下、コピペ
作業を行った日を一目でわかるようにカレンダーで色分けしたいと思っております.
そこで調べながらカレンダーを製作しました.カレンダーというテーブルに
本日日付
月末日付
というフィールドを設定しました.本日日付=Get(日付)
月末日付=Date ( Month( Extend( 今日 ));0; Year( Extend( 今日 )))- DayOfWeek(Date( Month( Extend( 今日 ));0; Year( Extend( 今日 )))) + Get( 計算式繰り返し位置番号 )
月末日付は繰り返し42回レイアウトで月末日付の繰り返しの表示を1-7,8-14,15-21,22-28,29-35,36-42とした6段並べて,日にちの数字だけ表示するようにしております.
以上の作業でカレンダーのように7日毎で表示されるものが完成しました.
と、書いてあるのですが、疑問点だらけで、泣きそうになっています。
・作成したフィールドのタイプは、両方とも『日付』、『グローバル格納ON』でよいのでしょうか?
・月末日付の式の中で『今日』とでてきているのですが、それまでの記述の中では『今日』は定義されていません。本日日付のことなのでしょうか?
・繰り返しフィールドというのは、フィールドのオプションにある『データ格納』の『最大繰り返し回数』に42といれればよいのでしょうか?
・『レイアウトで月末日付の繰り返しの表示を1-7,8-14,15-21,22-28,29-35,36-42とした6段並べて,日にちの数字だけ表示するようにしております.』については意味がわからないです。
・ここまでできないので、色分けどころではない。。
初心者すぎて申し訳ないのですが、誰か助けてください。お願いします。
私も初心者ですので,このように他の方の文章を紹介することでいっぱいですので,あくまでも参考程度にしていただければと思います.(そんな内容を書き込みしてもよいのか不安ですが...私のカレンダーの進行状況と捉えてください)
本日日付は フィールドタイプ 日付 計算値自動入力 で入力する計算値が本日日付=Get(日付)
月末日付は フィールドタイプ 計算 計算値 月末日付=Date ( Month( Extend(本日日付 ));0; Year( Extend(本日日付 )))- DayOfWeek(Date( Month( Extend( 本日日付 ));0; Year( Extend( 本日日付 )))) + Get( 計算式繰り返し位置番号 )
月末日付は 計算式の指定のウィンドウで計算結果を日付 繰り返し数を42にする.
と思われます.
ここからが我流です.
月末日付をレイアウトの編集のフィールド指定のインスペクタウィンドウのデータタブのフィールドのにある繰り返しを表示のところ1-7にします.
レイアウトの編集で月末日付をコピペして6段並べました.
2段目の月末日付の繰り返しを8-14 3段目を15-21 という風にしました.
日にちの数字だけ表示するにはフィールド指定のインスペクタウィンドウのデータタブのデータの書式設定の書式をその他にして
「なし」や「25」などを組み合わせれば日にちだけひょうじになりました.私が作業したときはなしの次の数字が25でした.
ここでは組み合わせで2013/0905を05だけにもできるし木曜日にもできるようです.
以上です.
これでカレンダー風にはできました.
私としてはコピペの箇所が自信ないのですが・・・
ご返信ありがとうございます。
やってみましたが、上手くいきません。。
繰り返しフィールドには『735105』のような数字が並ぶばかりで、カレンダーにはならないです。
なぜなのでしょうか?
言われた通りにはできていると思うのですが。。
追記です
また、インスペクタの書式設定では、『その他』という項目がありません。。
すいません、なんとか、日付の羅列にはできました。ありがとうございます。
ただ、縦線が入らないということと、今後どうすれば土日の色分け、1年分の作成ができるのでしょうか??
ご教授お願い致します。
何回も本当にすいません。
縦線はいれることができました!
今後の課題は
・土日の色分け
・1年分の作成
・前月の『31日』とか翌月の『1日』とかを消したい
です。
よろしくお願い致します。
条件付書式を設定できます。
まず、第1の条件で、
Month ( Self ) ≠ 1 の条件(表示している月で、数字は変更します)で、フォントサイズを小さく変更
を作ります。第2の条件で
DayOfWeek ( Self ) = 1 の条件で、フォント色を赤
第3の条件で、
DayOfWeek ( Self ) = 7 の条件で、フォント色を青
にします。これで、1. 3. は完了ですね。
2. は、
Let ( d1 = Date ( 1 ; 1 ; Year ( Get ( 日付 ) ) ) ; d1 - DayOfWeek ( d1 ) + Get ( 計算式繰り返し位置番号 ) )
Let ( d1 = Date ( 2 ; 1 ; Year ( Get ( 日付 ) ) ) ; d1 - DayOfWeek ( d1 ) + Get ( 計算式繰り返し位置番号 ) )
Let ( d1 = Date ( 3 ; 1 ; Year ( Get ( 日付 ) ) ) ; d1 - DayOfWeek ( d1 ) + Get ( 計算式繰り返し位置番号 ) )
:
Let ( d1 = Date ( 12 ; 1 ; Year ( Get ( 日付 ) ) ) ; d1 - DayOfWeek ( d1 ) + Get ( 計算式繰り返し位置番号 ) )という式を各々に設定した繰り返し計算フィールドを12個作り、それぞれを7列6行でレイアウトします。
来年分を作るのでしたら、各々の式で、Year ( Get ( 日付 ) ) + 1 にされれば良いでしょうし、
Last edited by Shin (2013-09-05 19:52:54)
Offline
ご返信ありがとうございます
2. は、
Let ( d1 = Date ( 1 ; 1 ; Year ( Get ( 日付 ) ) ) ; d1 - DayOfWeek ( d1 ) + Get ( 計算式繰り返し位置番号 ) )
Let ( d1 = Date ( 2 ; 1 ; Year ( Get ( 日付 ) ) ) ; d1 - DayOfWeek ( d1 ) + Get ( 計算式繰り返し位置番号 ) )
Let ( d1 = Date ( 3 ; 1 ; Year ( Get ( 日付 ) ) ) ; d1 - DayOfWeek ( d1 ) + Get ( 計算式繰り返し位置番号 ) )
:
Let ( d1 = Date ( 12 ; 1 ; Year ( Get ( 日付 ) ) ) ; d1 - DayOfWeek ( d1 ) + Get ( 計算式繰り返し位置番号 ) )
という式を各々に設定した繰り返し計算フィールドを12個作り、それぞれを7列6行でレイアウトします。
来年分を作るのでしたら、各々の式で、Year ( Get ( 日付 ) ) + 1 にされれば良いでしょうし、
上記内容なのですが、今までに作ったカレンダーではなく、1から作るという解釈でよろしかったのでしょうか??
また、繰り返し数は同様に『42』でよろしいのでしょうか??
(苦労して作ったので忍びなくて・・)
よろしくお願いいたします。
追記です。
教えていただいたとおりに実行すればできる話で、直接、今必要ない知識なのかもしれないですが、疑問に思ったので聞かせてください。
教えていただいた式の意味を考えた時に、カレンダーを作成するときの式は基本的(?)に繰り返しフィールドの計算式が
date(カレンダーに表示されている月)-dayweek(カレンダーに表示されている月)+get(計算式繰り返し位置番号)
という式が入っていますよね?
式の意味を調べたのですが、
・『date』で日付に変換したものから、『dayweek』で曜日の情報を引き算することにどういう意味があるのでしょうか??
・get(繰り返し番号)は1日ずつずらしていくという意味だと思うのですが、そもそも、表示形式が異なったもの(『date』や『dayweek』)の、足し算、引き算はできるのでしょうか?都合よく1日ずつずれてくれるのはなんでなんでしょうか??
・dateの()内の日にちの部分は『;0;』になっている場合と、『;1;』になっている場合があるのですが、この差はカレンダーを作成する上でどういう差になるのでしょうか?(最初に教えていただいたほうは『;0;』、昨日教えていただいたものは『;1;』だったもので)
意味が通じる文章になっているか、いささか不安ですが、ご教授よろしくお願いいたします。
繰り返しフィールドには『735105』のような数字が並ぶばかりで、カレンダーにはならないです。
なぜなのでしょうか?
何回も本当にすいません。
縦線はいれることができました!今後の課題は
・土日の色分け
・1年分の作成
・前月の『31日』とか翌月の『1日』とかを消したいです。
よろしくお願い致します。
satoさん
今後のため,逆に質問させてください.
1.735105のような数字になった減少の原因を教えてください.
2.どうやって縦線を入れたのでしょうか?
また
・前月の『31日』とか翌月の『1日』とかを消したい
に関しては,私が記述することを忘れておりました.すみません.
私は条件付き書式で,計算式がMonth(カレンダー::月末日付)≠Month(Get(本日日付))の時文字色を白色になるようにしました.
私もShinさんの方法挑戦してみます!
追記です.
1.735105のような数字になった減少の原因を教えてください.
の減少は現象です.
書き込みしてから間違いに気づきました.
fonfonさん
いつもご返信ありがとうございます。こんな初心者の話は役にたたないと思いますが、答えさせていただきます。
1.735105のような数字になった減少の原因を教えてください.
書くのもお恥ずかしい内容なのですが、フィールドの表示形式を『テキスト』にしていたため、date関数がそのような数字の羅列を返したのだと解釈しています。表示を『日付』にすればきちんと表示されました。
2.どうやって縦線を入れたのでしょうか?
これはインスペクタにある、外観⇒オブジェクト⇒『繰り返し項目間に枠を追加』を選択すればできました。
以上です。よろしくお願いします。
追記ばかりで申し訳ないです。
shinさんに教えていただいた方法には、日付の前に『extend』が含まれていないのですが、繰り返しフィールドにおいて、使わなくても問題ないということなんでしょうか?
いまいち、使うときがわからなくて・・。
またお時間のあるときに前述の質問に加えてご教授いただければ幸いです。
よろしくお願いします。
[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 630.04 KiB (Peak: 662.95 KiB) ]