初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-12-16 11:36:26

taka
Guest

カレンダーの作成

いつもお世話になっています。
FMPro13 Win8使用です。

ファイルメーカーでスケジュール管理を行いたいと考えています。
1レコード1日とし、そこにイベントや業務内容をポータル表示で表示するようにしています。

そこにカレンダーを表示させて日付をタップするとその日のレコードが表示されるようにしたいのですが可能でしょうか?

カレンダーの作り方が調べてもよくわかりませんでしたのでそこを含めて宜しくお願いします。

#2 2014-12-16 12:17:58

Layouter
Guest

Re: カレンダーの作成

作らないでも、コントロールスタイルに「ドロップダウンカレンダー」がある。

#3 2014-12-16 13:11:56

チポ
Member

Re: カレンダーの作成

一案です

1週間を1レコードとするテーブルにして、
日付フィールドを7つ、その7つとで7つのリレーション。

月ごとの表示とするにはもう少し複雑になりますが、
とりあえず、これでいかがでしょう。

Offline

#4 2014-12-16 13:18:55

Shin
Member

Re: カレンダーの作成

そのレコードの日付をドロップダウンカレンダーで設定し、トリガーでレコード移動させると良いのでは。

Offline

#5 2014-12-16 13:22:25

taka
Guest

Re: カレンダーの作成

Layouter様
回答ありがとうございます

チポ様
出来れば月毎の表示がいいのですが難しいでしょうか?
月ごとのスライドや表示する年も変えられたらいいんですが・・・

#6 2014-12-16 13:28:51

Shin様
Guest

Re: カレンダーの作成

回答ありがとうございます。

ドロップダウンカレンダー以外での方法はないのでしょうか?

こだわっているわけではないのですが、今後の参考にもしたいのです。

#7 2014-12-16 13:29:53

taka
Guest

Re: カレンダーの作成

すいません名前間違えました。

#6は私がShin様宛に書いたものです。

申し訳ありません。

#8 2014-12-16 14:30:14

チポ
Member

Re: カレンダーの作成

さらに
ひと月を1レコードとするテーブルを作り、
週間テーブルとリレーションし、
そのレイアウトに週間のポータルを配置、
カレンダー状にレイアウトを作ればいいでしょう。

週間のレコード作成は、
このポータル上にスクリプトで入力で出来ますね。

Offline

#9 2014-12-16 14:39:31

taka
Guest

Re: カレンダーの作成

チポ様
回答ありがとうございます。

具体的な方法を書いていただいてもよろしいでしょうか?

文面だとちょっと理解するのが難しくて・・・

#10 2014-12-16 14:51:38

チポ
Member

Re: カレンダーの作成

年月テーブルのフィールド
  年 (数字)
  月 (数字)

週間テーブルのフィールド
  年 (数字)
  月 (数字)
  d1(日付)
  d2(日付)
  d3(日付)
  d4(日付)
  d5(日付)
  d6(日付)
  d7(日付)

リレーション
   年月     週間
     年  =  年
     and
     月  =  月
     レコード作成を許可

年月テーブルのレイアウトに
週間テーブルのポータルを6行として、
d1からd7を横に配置、日付書式を「日」だけに設定。


後はレコード作成ですが、
それは出来るでしょうか?

Offline

#11 2014-12-16 14:54:18

taka
Guest

Re: カレンダーの作成

チポ様
ありがとうございます。
レコードの件も聞いておいていいでしょうか。

よろしくお願いします。

#12 2014-12-16 15:49:46

Shin
Member

Re: カレンダーの作成

ボタンにしたいのでしょうから、計算繰り返しフィールドで作ってしまうと良いかも。
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

#13 2014-12-16 15:53:06

チポ
Member

Re: カレンダーの作成

年月テーブルにレコードを作り、
年月に入力後のスクリプト。


  変数を設定[$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

#14 2014-12-16 17:02:29

taka
Guest

Re: カレンダーの作成

Shin様
回答ありがとうございます。
頂いたファイルを参考にやってみます。

チポ様
ありがとうございます。

やってみたのですが、

フィールドを名前で設定["週間::d & DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) ) ; Date ( 年月::月 ; $d ; 年月::年 )]

のところがうまくいきません。

最後のDateの前の;所に演算子を入れてくださいのようになってしまうのですがどう対処したらいいでしょうか?

#15 2014-12-16 17:11:33

チポ
Member

Re: カレンダーの作成

ごめんなさい、
「"」が抜けていました。

  フィールドを名前で設定["週間::d" & DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) ) ; Date ( 年月::月 ; $d ; 年月::年 )]

このように訂正お願いいたします -_-

Offline

#16 2014-12-16 17:20:40

taka
Guest

Re: カレンダーの作成

チポ様
回答ありがとうございます。

""のところを直したのですが、最後の;のところから先で演算子を入れてくださいとなってしまいます。

#17 2014-12-16 17:26:51

チポ
Member

Re: カレンダーの作成

"週間::d" & DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) )
ここまでが、
  ターゲットフィールドの指定

Date ( 年月::月 ; $d ; 年月::年 )
ここが、
  計算結果:
の計算式です。


いずれも
テーブル名、フィールド名、変数名
は現状に合わせます。

Offline

#18 2014-12-16 17:32:58

taka
Guest

Re: カレンダーの作成

チポ様
ありがとうございます。

フィールドを作成しスクリプトも作成しました。

あとは年月テーブルにレコードを作成し、そこにポータルを作成すること、あとは年と月のフィールドを置いて入力し、スクリプトを実行すればよろしいのでしょうか?
週間テーブルにはなにも入力等していませんが大丈夫でしょうか?

#19 2014-12-16 17:34:35

taka
Guest

Re: カレンダーの作成

あと、最初の  週間::dはd1のことでいいのでしょうか?

#20 2014-12-16 17:40:27

チポ
Member

Re: カレンダーの作成

"週間::d"
ここまでがテキストの指定

  DayOfWeek ( Date ( 年月::月 ; $d ; 年月::年 ) )
これが日付の曜日によって、1から7を返します。

で、
二つをつなげて、日曜日なら
  週間::d1
となります。

Offline

#21 2014-12-17 09:03:14

taka
Guest

Re: カレンダーの作成

チポ様
回答ありがとうございます。

そういうことだったのですね。
丁寧な解説ありがとうございます。

今試してみたのですが、これだと6レコード作成する必要があるのでしょうか?

#22 2014-12-17 09:19:49

チポ
Member

Re: カレンダーの作成

これだと6レコード作成する必要があるのでしょうか

ん、どういう意味でしょう。

私の提案したスクリプトは、ひと月分ですから、
週間テーブルのレコードは5から6レコード(2月だけ4レコードの可能性がありますが)
作られます。

週間テーブルを確認してみてください。

Offline

#23 2014-12-17 09:29:55

taka
Guest

Re: カレンダーの作成

チポ様

チポ wrote:

年月テーブルのフィールド
  年 (数字)
  月 (数字)

週間テーブルのフィールド
  年 (数字)
  月 (数字)
  d1(日付)
  d2(日付)
  d3(日付)
  d4(日付)
  d5(日付)
  d6(日付)
  d7(日付)

リレーション
   年月     週間
     年  =  年
     and
     月  =  月
     レコード作成を許可

年月テーブルのレイアウトに
週間テーブルのポータルを6行として、
d1からd7を横に配置、日付書式を「日」だけに設定。

年月テーブルに新規レコードを作成し、年フィールドと月フィールドにそれぞれ入力(2014年12月)を行いました。

その後教えていただいたスクリプトを作成し、実行したのですがうまくいきません。

今のところ週刊テーブルには1レコード作成し、年と月(2014年12月)のみ入力してあるのですがそれがおかしいのでしょうか?

すみませんが宜しくお願いします。

#24 2014-12-17 09:39:51

チポ
Member

Re: カレンダーの作成

年フィールドと月フィールドにそれぞれ入力(2014年12月)を行いました。

入力するのは数値のみ
  2014
  12
です。

週間テーブルのレコードを手作業で作る必要は有りません。
スクリプトで自動で作られてゆきます。

リレーションの設定で、週間テーブルの新規レコード作成に許可としていますよね。

こうしておいて、
ポータルの新規行に入力すると週間テーブルで新規レコードが作られ、
照合フィールドには自動で入力されています。

Offline

#25 2014-12-17 09:59:55

taka
Guest

Re: カレンダーの作成

チポ様

入力は数値のみになっています。

今週間テーブルのレコードをすべて削除して、リレーションの確認を行いました。
やったつもりだったのですが、年間テーブルの方にのみ新規レコード作成の許可がされていたので週間テーブルも許可とし、もう一度スクリプトをやってみたところ、年間テーブルの方には1行分の表示がされました。

年間テーブル
  年F    月F 
2014(年) 12(月)

d1F 28
d2F 29
d3F 30
d4F 31
d5F 25
d6F 26
d7F 27

と表示されました。

週間テーブルには1レコードのみ作成されていました。

スクリプトは正しいのを確認しています。

なにか原因等わかりますでしょうか?

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 567.5 KiB (Peak: 588.41 KiB) ]