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

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

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

You are not logged in.

Announcement

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


#1 2017-05-05 10:37:09

pol
Member

入院日を基準に1ヶ月~4ヵ月を自動で表示したい

使用環境はFMpro12、win8です。

患者の入院日のフィールドがあるのですが、患者が入院してきたら入院日を患者ごとに入力します。

あるレイアウト上に入院日を基準日にして以下のように表示したいです。

例)入院日 4/1
  1ヵ月後 5/1
  2ヵ月後 6/1
  3ヵ月後 7/1
  4ヵ月後 8/1

入院日を基準日に1ヵ月~4ヵ月後まで自動で表示させたいです。

やり方としては、フィールドを
・入院日
・1ヵ月後
・2ヵ月後
・3ヵ月後
・4ヵ月後

以上の4つのフィールドを作って、1~4ヵ月のフィールドを計算フィールドにして、入院日のフィールドを基準に1か月後と定義していくのでいいのでしょうか?

フィールドが無駄に増えてしまうので、これでいいのかと疑問を感じています。
これが正解なら正解でいいのですが、これ以外のやり方で良い方法があるのであれば教えて頂けますでしょうか?

Offline

#2 2017-05-05 10:54:10

Shin
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

その後どうするか、で考え方は変わるでしょう。
例えば、その表示のみで良いのでしたら、繰り返しフィールドに計算させておくとフィールドは1個の追加だけで済みます。
そのフィールドの日付を元にそれぞれで何らかの記録をしたい、という事でしたら、複数のフィールド、または、複数のレコードに設定してポータルで表示させる、という方法が最適かも知れません。

ただし、1ヶ月後について、月末についての例外定義を行ってください。
例えば、1月31日の1ヶ月後は、3ヶ月後は、どう計算しますか。

Offline

#3 2017-05-05 12:27:58

pol
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

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

このフィールドは表示のみでいいです。
1つのフィールドのみで定義したいのですが、やり方が分からないので教えて頂けますでしょうか?

Shin wrote:

ただし、1ヶ月後について、月末についての例外定義を行ってください。
例えば、1月31日の1ヶ月後は、3ヶ月後は、どう計算しますか。

月末についての例外定義は、全て30日後の定義で行きたいと思います。

Offline

#4 2017-05-05 12:33:03

pol
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

度々すいません。

法的な規則の絡みもあり、1ヵ月1回は必ず表示したいです。

先ほどの「30日毎」だと2月を飛ばしてしまうことがありますよね。

1月31日の1ヶ月後は2月28日、
1月31日の3ヶ月後は4月30日というように定義できますでしょうか?、

Offline

#5 2017-05-05 13:33:59

Hiro
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

繰り返し計算フィールドの計算式

Let([
   #y=Year(入院日[1]);
   #m=Month(入院日[1]);
   #d=Day(入院日[1]);
   #aft=Get(計算式繰り返し位置番号)
];
   Min(Date(#m+#aft; #d; #y); Date(#m+#aft+1;0;#y))
)

Offline

#6 2017-05-05 15:30:09

pol
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

Hiro様、ありがとうございます。

入院日フィールドとは別に、入院日~4ヵ月後までを表示させる繰り返しフィールドを作りました。
うまくできないのですが、なぜでしょうか?

入院日フィールドとは別にフィールドを作りたいのですが、これが原因でしょうか?

すいません。

Offline

#7 2017-05-05 17:40:36

Shin
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

Hiroさんの式を参考にされているのでしょうが、[1] の部分が抜けていませんか。
入院日から表示するのでしたら、#aft=Get(計算式繰り返し位置番号) - 1 とすると良いです。

Last edited by Shin (2017-05-05 18:22:44)

Offline

#8 2017-05-06 07:21:39

pol
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

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

Shin wrote:

Hiroさんの式を参考にされているのでしょうが、[1] の部分が抜けていませんか。
入院日から表示するのでしたら、#aft=Get(計算式繰り返し位置番号) - 1 とすると良いです。

ん~。なんででしょう。
やっぱりフィールド内が空白になってしまい表示されませんね。

今行っているのはこんな感じです。

同一テーブル内に、[病棟入院日]のフィールドがあります。
この[病棟入院日]には、患者が入院してくると必ず打ち込まれます。

もう1つ
・入院日
・1ヵ月
・・・
・・
・4ヵ月

を表示させる繰り返しフィールドを作りました。

このフィールドは6回の繰り返しフィールドを定義しました。

こにフィールドの入力値の自動化のところの計算値に、

Let([
   #y=Year(病棟入院日[1]);
   #m=Month(病棟入院日[1]);
   #d=Day(病棟入院日[1]);
   #aft=Get(計算式繰り返し位置番号)
];
   Min(Date(#m+#aft; #d; #y); Date(#m+#aft+1;0;#y))
)

と記載しました。

どこか間違いがありますでしょうか?

Offline

#9 2017-05-06 08:36:01

Shin
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

> 入力値の自動化のところの計算値
が誤り。計算フィールドにして,計算式にその式を入れます。

Last edited by Shin (2017-05-06 08:47:37)

Offline

#10 2017-05-06 11:54:19

pol
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

Shin wrote:

> 入力値の自動化のところの計算値
が誤り。計算フィールドにして,計算式にその式を入れます。

ありがとうございます。
お蔭さまでできました。

ちなみになんですが、入院日から1ヵ月以降の表示はされるんですが、入院日もこの繰り返しフィールドに含めて表示することはできますか?

Offline

#11 2017-05-06 11:59:33

Hiro
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

#6 Shinさん >入院日から表示するのでしたら、#aft=Get(計算式繰り返し位置番号) - 1 とすると良いです。
・回答をしっかり理解ください。アドバイス済ですよ!

Offline

#12 2017-05-06 12:34:45

pol
Member

Re: 入院日を基準に1ヶ月~4ヵ月を自動で表示したい

Hiro様、Shin様、大変失礼しました。
申し訳ありません。

このたびは本当にありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 524.67 KiB (Peak: 545.21 KiB) ]