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

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

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

You are not logged in.

Announcement

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


#1 2015-12-03 12:42:46

駆出FMプログラマ
Guest

カレンダーを作成したい。

いつも拝見させていただいて勉強させていただいています。
この度、スケジュール管理をするソフトを作ることになったのですが
どう表現すればいいのかわからずに投稿させていただきました。
長文になりますがお付き合いいただければと思います。

現在、構想中のものとしては
画面イメージ:カレンダー形式での入力にしたいです。
|社員CD|          |        〇〇〇〇年〇〇月              |
|   日    |   月    |    火  |   水    |   木    |    金   |   土   |
|   1     |   2     |    3   |   4      |   5    |    6    |   7   |
|スケジュール|スケジュール|スケジュール|スケジュール|スケジュール|スケジュール|スケジュール|
                                  ~
|   29    |   30    |    31  |          |        |         |       |
|スケジュール|スケジュール|スケジュール|         |        |         |       |

のような感じにしたいです。
スケジュールは、別テーブルを作って入力時にはドロップダウンリストから選択する方式にして
テーブルは、
テーブル1(メイン):
社員CD 日付 スケジュール[42]
テーブル2(社員マスタ):
社員CD 社員名
テーブル3(スケジュールマスタ):
スケジュールID スケジュール名
を用意する予定です。
処理としては、1社員1レコードを作成するようにしたいです。
スケジュールはあとでスケジュールごとに集計を取りたいので
1社員1日1レコードでデータを作成した方がいいのかもしれません。
ただ、入力はカンレンダー様式にこだわりたいので1レコード1件のデータを繰り返しフィールドに
表示させる方法が必要なのかもしれません。
こんな感じでスケジュール管理のシステムを組みたいのです。
なんとなくの構想は出来ているのですが、これを具現化するにはまだまだ私の技量では
足りないようで、方法が思い至りません。
どなかたか、ご教授をお願いします。

#2 2015-12-03 14:18:25

旅人
Member

Re: カレンダーを作成したい。

集計が必要ということなので
>1社員1日1レコード
のテーブルが基本でしょうけど、繰り返しでの入力は訂正とかがあった場合に
元テーブルの書き換えが超面倒になりそうですよ。

Offline

#3 2015-12-03 14:41:25

駆出FMプログラマ
Guest

Re: カレンダーを作成したい。

旅人様、返信ありがとうござます。

旅人 wrote:

集計が必要ということなので
>1社員1日1レコード
のテーブルが基本でしょうけど、繰り返しでの入力は訂正とかがあった場合に
元テーブルの書き換えが超面倒になりそうですよ。

そうなんです。そこが悩んでいるところで。
集計時、訂正が入ることがありますので訂正は出来ないといけないんです。
ただ、入力は現場の要望でもあるのでカレンダー方式で行かなければ
いけないし。
繰り返しフィールドでの入力を維持しながら、集計にも行えるように
1社員1日1レコードの保存。
こんなことが実現可能なんでしょうか?

#4 2015-12-03 15:50:50

チポ
Member

Re: カレンダーを作成したい。

かなり作り込むことになりますが、
繰り返しではなくポータルで可能でしょう。

いち日を1ポータルとして、
それを横に7列、縦に6段並べる。

月をまたぐ週の照合を考えなければなりませんね。

Offline

#5 2015-12-03 16:14:03

駆出FMプログラマ
Guest

Re: カレンダーを作成したい。

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

チポ wrote:

かなり作り込むことになりますが、
繰り返しではなくポータルで可能でしょう。

いち日を1ポータルとして、
それを横に7列、縦に6段並べる。

月をまたぐ週の照合を考えなければなりませんね。

すいません。私がポータルについていまいち理解しておらず
イメージが掴めません。
具体的にお教えいただけると助かります。

#6 2015-12-03 16:54:18

チポ
Member

Re: カレンダーを作成したい。

んん、、
ポータルが分ってないと難しいか。。

ポータルはリレーションの関連テーブルのレコードを表示する「窓」です。


1社員&ひと月を1レコードとするカレンダテーブルと
1社員&1日を1レコードとするスケジュールテーブルとをリレーションして、
カレンダテーブルのレイアウトにスケジュールテーブルをポータルで表示する。

という考えです。

この表示が、
1日が1行のリスト表示でよければ簡単なポータルでいいのですが、
前記のようなカレンダー形式の表示とするには結構面倒な作業が必要となります。



これをするのなら。まず、リレーション・ポータルの理解からとなりますね。

リレーションのヘルプ
http://www.filemaker.com/help/14/fmp/ja … html#61418

ポータルのヘルプ
http://www.filemaker.com/help/14/fmp/ja … tml#797934

お調べ下さい。

Offline

#7 2015-12-03 17:09:00

nice-guy
Member

Re: カレンダーを作成したい。

駆出FMプログラマ さん、私もカレンダーは作ってみたいと思うのですが、なかなか敷居が高くて難しいですね。
https://splash.jp/store/seedcodecalendar/
に無料のロックフリーのカレンダーが公開されています。これをダウンロードして、解析してみてはいかがですか?

Offline

#8 2015-12-03 17:17:46

Hiro
Member

Re: カレンダーを作成したい。

まんま!の過去ログ「サンプル」が公開してあります。

●サンプル「ToDoカレンダv2非トリガ版 (人別).fp7」 → http://yahoo.jp/box/cNJp0O

Offline

#9 2015-12-04 08:53:39

Shin
Member

Re: カレンダーを作成したい。

もう少し簡単な構成でのサンプルです。近くのスレッドで公開したサンプルの改変です。(FM13以降)
https://dl.dropboxusercontent.com/u/926 … .fmp12.zip

Offline

#10 2015-12-07 08:47:42

駆出FMプログラマ
Guest

Re: カレンダーを作成したい。

いつもお世話になります。
多数の返信をいただき感謝しております。

nice-guy様、Hiro様、Shin様。大変参考になるサンプルをお教えいただき
ありがとうございます。
特に、Hiro様のサンプルはまさに当方で実現したいものでした。ありがとうございました。
これを、何とか解析して完成させたいと思います。
また、投稿させていただくことがあると思いますがその時もよろしくお願いします。
ありがとうございました。

追伸:
  Shin様、お教えいただいたリンクですが当方FM11のため開けませんでした。
  最初に当方の環境を書き忘れておりました。せっかくお教えいただいたのに
  生かせず申し訳ありません。

#11 2015-12-07 08:50:24

Shin
Member

Re: カレンダーを作成したい。

FM12以前用はこちら。
https://dl.dropboxusercontent.com/u/926 … 39.fp7.zip
テキストの集計が出来ないので、数字で表示されます。ここをルックアップで文字に入れ替えると目的に合うかも。

Offline

#12 2015-12-07 09:16:00

駆出FMプログラマ
Guest

Re: カレンダーを作成したい。

Shin様、返信ありがとうございます。

Shin wrote:

FM12以前用はこちら。
https://dl.dropboxusercontent.com/u/926 … 39.fp7.zip
テキストの集計が出来ないので、数字で表示されます。ここをルックアップで文字に入れ替えると目的に合うかも。

新たにリンクをお教えいただきありがとうございます。
こちらも参考にさせていただきます。
ありがとうございました。

#13 2015-12-07 15:43:07

tanto
Member

Re: カレンダーを作成したい。

横から失礼いたします。
現在私もカレンダーを製作しており、悩んでいます。
現在フィールドを
開始日(グローバル)  ,曜日(繰り返し)[7]  , 日付(繰り返し)[42]  , 通過日(繰り返し)[42]   , 休日(テキスト)[42]   , 稼働日(計算)Day(Date (Month (開始日) + 1; 1; Year (開始日)) - 1 )-Count(休日)-Count(通過日)

     <年月>
|   日    |   月    |    火  |   水    |   木    |    金   |   土   |
|   29   |   30   |    1   |   2     |   3     |    4    |   5     |
|済       |済      |済      |済       |済       |済        |済       |
|×        |         |        |          |          |          |×      |
                                 
|   6     |   7     |    8   |   9     |   10   |    11   |   12 |
|済       |済       |         |         |         |           |        |
|×        |         |         |         |         |            |×      |
この様な感じでカレンダーは完成したのですが、稼働日が間違った答え("済"と"×"が重なる日が有る為)になってしまいます。 希望と致しまして、稼働日の残りの日を出したい為に、通過日(繰り返し)[42]フィールドを作りましたが自動で"済"が入らず悩んでいます。(今日の-1日に"済"を入れる)
すみませんが、ご指導宜しくお願い致します。

Last edited by tanto (2015-12-07 15:46:32)

Offline

#14 2015-12-07 16:40:35

Shin
Member

Re: カレンダーを作成したい。

繰り返しフィールドを使わずに、1日1レコードで展開して作り直す事を、強くお勧めします。
今のままでは、例えば、カレンダーの最後の方の翌月に入力された場合に、カレンダー上で翌月に繰り越せませんね。手での作業は、止めるべきでしょう。

どうしても今のままで運用を続けるのならば、もう一つ繰り返しフィールドを作り、通過日でない×(休日の意味でしょうか)のみを引き出す事が必要でしょう。そのフィールドを Count すれば良いです。また、通貨日も、現在の日付を元にした計算フィールドにする方が良いかと思います。

Offline

#15 2015-12-07 17:37:13

tanto
Member

Re: カレンダーを作成したい。

SHIN様ご回答ありがとうございます。
今回のカレンダーの目的と致しまして、その月の稼働日(例えば、土日以外の日数)とその月の残りの稼働日を表示したい為にカレンダーを作成致しました。
そこでカレンダーは繰り返しフィールドを用いて作成し、稼働日の表示を含め作動していますが、どうしても稼働日の残りの日数表示が出来ずにいます。
SHIN様が言われた様に、”1日1レコードで展開”ではなく”今のままで運用”を採用して場合どの様にすれば稼働日の残りの日数が表示可能になりますか?
お忙しいかと思いますが、ご指導宜しくお願い致します。

Offline

#16 2015-12-07 22:04:58

Shin
Member

Re: カレンダーを作成したい。

IsEmpty ( 稼働日 ) and 休日 and Month ( 日付 ) = 月
という計算フィールドで良いのでは。

Offline

#17 2015-12-08 19:00:12

tanto
Member

Re: カレンダーを作成したい。

先ほどshinさまから教えていただきました下記の式を試してみようと思いましたが、どのフィールドに入れれば良いか分からず悩んでいます。

Shin wrote:

IsEmpty ( 稼働日 ) and 休日 and Month ( 日付 ) = 月
という計算フィールドで良いのでは。

残り日数フィールドを作成し入れてみましたが0としか出ません。 再度設定の仕方を教えていただけないでしょうか?
宜しくお願い致します。

Offline

#18 2015-12-09 00:19:48

Shin
Member

Re: カレンダーを作成したい。

その式の計算式繰り返しフィールドを新たに作ります。
それをカウントしてみれば如何でしょう。

Offline

#19 2015-12-09 06:53:22

tanto
Member

Re: カレンダーを作成したい。

やってみましたが値が0になってしまい,繰り返し42ともカウントされてしまいます。もしかしたら他のフィールド設定に間違いがある可能性がありますのでご確認お願いできないでしょうか?
宜しくお願い致します。

フィールド名    タイプ     オプション

開始日      日付    グローバル 「get(日付)」
曜日       計算[7]      Choose(Get(計算式繰り返し位置番号);"";TextColor("Sun";RGB(255;0;0));"Mon";"Tue";"Wed";"Thu";"Fri";TextColor("Sat";RGB(0;0;225)))
日付       計算[42]    Let([$start=Date(Month(開始日[1]);1;Year(開始日[1]));$date=$start + Get(計算式繰り返し位置番号) - DayOfWeek($start)];$date)
休日       テキスト[42]
稼働日      計算[42]    Day(Date (Month (開始日) + 1; 1; Year (開始日)) - 1 )-Count(休日)
残りの稼働日   計算    月末_g - Get(日付)-Count(休日) - count(通過)
通過       計算[42]    IsEmpty ( 稼働日 ) and 休日 and Month ( 日付 ) = Month(開始日)

以上です。 宜しくお願い致します。

Offline

#20 2015-12-09 23:33:36

Shin
Member

Re: カレンダーを作成したい。

稼働日ではなく、通過日でした
IsEmpty ( 通過日 ) and 休日 and Month ( 日付 ) = 月

フィールド名とそのフィールドの定義や入力内容はきちんと書いていただかないと、それを知っているのは貴方だけですよ。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.017 seconds, 9 queries executed - Memory usage: 576.73 KiB (Peak: 613.63 KiB) ]