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

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

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

You are not logged in.

Announcement

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


#1 2024-02-08 13:40:16

mofu
Guest

契約開始日からの経過日数を〇年〇ヶ月で表示したい

基礎的な部分も曖昧なままで大変恐縮なのですが、フィールドで

契約開始日(タイプ:日付)
契約終了日(タイプ:日付)
契約期間(タイプ:計算)

を作成しました。
現在も契約中の場合は自動で今日の日付を取得し、契約期間を「〇年〇ヶ月」で表示したいのですが
どのように計算式をいじれば良いのか分かりません。
自分で色々と調べてみて、

Choose( IsEmpty(契約開始日); Max(0; Case(契約終了日; 契約終了日; Get(日付))-契約開始日+1) )

で契約終了日が空欄でも、契約日数は表示されましたが
あくまでも日数なので1350日ですとかそういった表示になり、分かりにくいなと。

Let (
[
YN0 = Year ( 契約開始日 ) * 1200 + Month ( 契約開始日 ) * 100 + Day ( 契約開始日 )  ;
YN1 = Year ( 契約終了日 + 1 ) * 1200 + Month ( 契約終了日 + 1 ) * 100 + Day ( 契約終了日 + 1 ) ;
YM  = Div ( YN1 - YN0 ; 100 ) ;
Y = Div ( YM ; 12 ) ;
M = Mod ( YM ; 12 )
] ;
Case ( Y ; Y & "年" ) & Case ( M ; M & "ヶ月" )
)

この状態だと、契約終了日が空欄だと契約日数が?と表示されてしまい、契約中の場合の契約期間の表示に不便が生じてしまい…。
Caseの式をどこかに挿入すれば良いのか…?と試してみたもののいまいち分からず。
そもそも全く別の計算式が良いのでしょうか。
理解に乏しくお恥ずかしいですが、ご教示頂けますと幸いです。

#2 2024-02-08 15:02:21

チポ
Member

Re: 契約開始日からの経過日数を〇年〇ヶ月で表示したい

書かれた契約終了日を、
  契約終了日に入力があればその日、なければ本日
と変えればいいのでは。

Letの定義で変数にして、契約終了日を変数に変えればいいでしょう。

書かれた式自体の是非は見ていません。。

Offline

#3 2024-02-08 15:16:34

mofu
Guest

Re: 契約開始日からの経過日数を〇年〇ヶ月で表示したい

何とかなりました…!有難うございます。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 10 queries executed - Memory usage: 512.28 KiB (Peak: 516.82 KiB) ]