みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
いつもお世話になっています。
FMPro13 Win8使用です。
ファイルメーカーでスケジュール管理を行いたいと考えています。
1レコード1日とし、そこにイベントや業務内容をポータル表示で表示するようにしています。
そこにカレンダーを表示させて日付をタップするとその日のレコードが表示されるようにしたいのですが可能でしょうか?
カレンダーの作り方が調べてもよくわかりませんでしたのでそこを含めて宜しくお願いします。
作らないでも、コントロールスタイルに「ドロップダウンカレンダー」がある。
一案です
1週間を1レコードとするテーブルにして、
日付フィールドを7つ、その7つとで7つのリレーション。
月ごとの表示とするにはもう少し複雑になりますが、
とりあえず、これでいかがでしょう。
Offline
そのレコードの日付をドロップダウンカレンダーで設定し、トリガーでレコード移動させると良いのでは。
Offline
Layouter様
回答ありがとうございます
チポ様
出来れば月毎の表示がいいのですが難しいでしょうか?
月ごとのスライドや表示する年も変えられたらいいんですが・・・
回答ありがとうございます。
ドロップダウンカレンダー以外での方法はないのでしょうか?
こだわっているわけではないのですが、今後の参考にもしたいのです。
すいません名前間違えました。
#6は私がShin様宛に書いたものです。
申し訳ありません。
さらに
ひと月を1レコードとするテーブルを作り、
週間テーブルとリレーションし、
そのレイアウトに週間のポータルを配置、
カレンダー状にレイアウトを作ればいいでしょう。
週間のレコード作成は、
このポータル上にスクリプトで入力で出来ますね。
Offline
チポ様
回答ありがとうございます。
具体的な方法を書いていただいてもよろしいでしょうか?
文面だとちょっと理解するのが難しくて・・・
年月テーブルのフィールド
年 (数字)
月 (数字)
週間テーブルのフィールド
年 (数字)
月 (数字)
d1(日付)
d2(日付)
d3(日付)
d4(日付)
d5(日付)
d6(日付)
d7(日付)
リレーション
年月 週間
年 = 年
and
月 = 月
レコード作成を許可
年月テーブルのレイアウトに
週間テーブルのポータルを6行として、
d1からd7を横に配置、日付書式を「日」だけに設定。
後はレコード作成ですが、
それは出来るでしょうか?
Offline
チポ様
ありがとうございます。
レコードの件も聞いておいていいでしょうか。
よろしくお願いします。
ボタンにしたいのでしょうから、計算繰り返しフィールドで作ってしまうと良いかも。
42繰り返しにして、7繰り返しで6行にしておきます。基準日を
Date ( 月 ; 1 ; 年 ) - DayOfWeek ( Date ( 月 ; 1 ; 年 ) )
にして、繰り返しフィールドは、
基準日[1] + Get ( 計算式繰り返し位置番号 )
にしておきます。そのフィールドに OnObjectEnter トリガーで、Get ( アクティブフィールド内容 ) を取り出して、元のテーブルで検索すれば良いでしょう。
https://dl.dropboxusercontent.com/u/926 … 84.fp7.zip
Last edited by Shin (2014-12-19 10:02:59)
Offline
年月テーブルにレコードを作り、
年月に入力後のスクリプト。
変数を設定[$d ; 値:1]
ポータル内の行へ移動[最初の]
Loop
Loop
If[Month ( Date ( 年月::月 ; $d ; 年月::年 ) ) ≠ 年月::月]
現在のスクリプト終了
End If
フィールドを名前で設定["週間::d & DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) ) ; Date ( 年月::月 ; $d ; 年月::年 )]
変数を設定[$d ; 値:$d + 1]
Exit Loop If[DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) ) = 1]
End Loop
ポータル内の行へ移動[次の]
End Loop
年月のレコード作成もスクリプトに出来ますが、
手作業でもいいでしょう。
Last edited by チポ (2014-12-16 16:00:12)
Offline
Shin様
回答ありがとうございます。
頂いたファイルを参考にやってみます。
チポ様
ありがとうございます。
やってみたのですが、
フィールドを名前で設定["週間::d & DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) ) ; Date ( 年月::月 ; $d ; 年月::年 )]
のところがうまくいきません。
最後のDateの前の;所に演算子を入れてくださいのようになってしまうのですがどう対処したらいいでしょうか?
ごめんなさい、
「"」が抜けていました。
フィールドを名前で設定["週間::d" & DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) ) ; Date ( 年月::月 ; $d ; 年月::年 )]
このように訂正お願いいたします -_-
Offline
チポ様
回答ありがとうございます。
""のところを直したのですが、最後の;のところから先で演算子を入れてくださいとなってしまいます。
"週間::d" & DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) )
ここまでが、
ターゲットフィールドの指定
Date ( 年月::月 ; $d ; 年月::年 )
ここが、
計算結果:
の計算式です。
いずれも
テーブル名、フィールド名、変数名
は現状に合わせます。
Offline
チポ様
ありがとうございます。
フィールドを作成しスクリプトも作成しました。
あとは年月テーブルにレコードを作成し、そこにポータルを作成すること、あとは年と月のフィールドを置いて入力し、スクリプトを実行すればよろしいのでしょうか?
週間テーブルにはなにも入力等していませんが大丈夫でしょうか?
あと、最初の 週間::dはd1のことでいいのでしょうか?
"週間::d"
ここまでがテキストの指定
DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) )
これが日付の曜日によって、1から7を返します。
で、
二つをつなげて、日曜日なら
週間::d1
となります。
Offline
チポ様
回答ありがとうございます。
そういうことだったのですね。
丁寧な解説ありがとうございます。
今試してみたのですが、これだと6レコード作成する必要があるのでしょうか?
これだと6レコード作成する必要があるのでしょうか
ん、どういう意味でしょう。
私の提案したスクリプトは、ひと月分ですから、
週間テーブルのレコードは5から6レコード(2月だけ4レコードの可能性がありますが)
作られます。
週間テーブルを確認してみてください。
Offline
チポ様
年月テーブルのフィールド
年 (数字)
月 (数字)週間テーブルのフィールド
年 (数字)
月 (数字)
d1(日付)
d2(日付)
d3(日付)
d4(日付)
d5(日付)
d6(日付)
d7(日付)リレーション
年月 週間
年 = 年
and
月 = 月
レコード作成を許可年月テーブルのレイアウトに
週間テーブルのポータルを6行として、
d1からd7を横に配置、日付書式を「日」だけに設定。
年月テーブルに新規レコードを作成し、年フィールドと月フィールドにそれぞれ入力(2014年12月)を行いました。
その後教えていただいたスクリプトを作成し、実行したのですがうまくいきません。
今のところ週刊テーブルには1レコード作成し、年と月(2014年12月)のみ入力してあるのですがそれがおかしいのでしょうか?
すみませんが宜しくお願いします。
年フィールドと月フィールドにそれぞれ入力(2014年12月)を行いました。
入力するのは数値のみ
2014
12
です。
週間テーブルのレコードを手作業で作る必要は有りません。
スクリプトで自動で作られてゆきます。
リレーションの設定で、週間テーブルの新規レコード作成に許可としていますよね。
こうしておいて、
ポータルの新規行に入力すると週間テーブルで新規レコードが作られ、
照合フィールドには自動で入力されています。
Offline
チポ様
入力は数値のみになっています。
今週間テーブルのレコードをすべて削除して、リレーションの確認を行いました。
やったつもりだったのですが、年間テーブルの方にのみ新規レコード作成の許可がされていたので週間テーブルも許可とし、もう一度スクリプトをやってみたところ、年間テーブルの方には1行分の表示がされました。
年間テーブル
年F 月F
2014(年) 12(月)
d1F 28
d2F 29
d3F 30
d4F 31
d5F 25
d6F 26
d7F 27
と表示されました。
週間テーブルには1レコードのみ作成されていました。
スクリプトは正しいのを確認しています。
なにか原因等わかりますでしょうか?
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 567.5 KiB (Peak: 588.41 KiB) ]