みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
基礎的な部分も曖昧なままで大変恐縮なのですが、フィールドで
契約開始日(タイプ:日付)
契約終了日(タイプ:日付)
契約期間(タイプ:計算)
を作成しました。
現在も契約中の場合は自動で今日の日付を取得し、契約期間を「〇年〇ヶ月」で表示したいのですが
どのように計算式をいじれば良いのか分かりません。
自分で色々と調べてみて、
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の式をどこかに挿入すれば良いのか…?と試してみたもののいまいち分からず。
そもそも全く別の計算式が良いのでしょうか。
理解に乏しくお恥ずかしいですが、ご教示頂けますと幸いです。
書かれた契約終了日を、
契約終了日に入力があればその日、なければ本日
と変えればいいのでは。
Letの定義で変数にして、契約終了日を変数に変えればいいでしょう。
書かれた式自体の是非は見ていません。。
Offline
何とかなりました…!有難うございます。
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 505.34 KiB (Peak: 516.14 KiB) ]