AnsweredAssumed Answered

「賞味期限起算日」を用意しないといけないということが判明し調整で詰...

Question asked by parc_box on Jul 6, 2015
Latest reply on Jul 7, 2015 by parc_box

タイトル

「賞味期限起算日」を用意しないといけないということが判明し調整で詰まってます……。

フォーラムに投稿

お世話になっております。

賞味期限を出す為に賞味期限起算日を出す計算式を用意しようとして詰まってます。
★この関数を使うと、小分製造日がa~dまで任意の日付が入ってる場合、正常に動作します。
★しかし、小分製造日が全て空欄で、製造日だけ入力すると、賞味期限起算日が空欄のままとなってしまいます。
→結果、賞味期限日の値は「0001/04/29」となります。(賞味期限日数は120日[計算上は119日])

フィールドは次の通りです。
※フィールド[賞味期限起算日]を算出する為の計算式です。

[入庫日]:日付
[製造日]:日付~通常、入庫日と同じ日。小分製造日が入ってる時は無視してもらう。
[小分製造日 a]:日付 ※たまに発生。前日製造のあまりや返品分などの製造日。
[小分製造日 b]:日付 ※たまに発生。前日製造のあまりや返品分などの製造日
[小分製造日 c]:日付 ※たまに発生。前日製造のあまりや返品分などの製造日
[小分製造日 d]:日付 ※たまに発生。前日製造のあまりや返品分などの製造日
[賞味期限起算日]:日付 ※計算値自動入力

<!-- ここから賞味期限起算日計算式 -->

Case (

/* 小分製造日の最小値に13日を足した値が今日の日付よりも前ならば、賞味期限起算日[以下、起算日]は「小分製造日の最小値に13を足した値」 */
Min ( 小分製造日 a ; 小分製造日 b ; 小分製造日 c ; 小分製造日 d ) + 13 < Get ( 日付 ) ;
Min ( 小分製造日 a ; 小分製造日 b ; 小分製造日 c ; 小分製造日 d ) + 13 ;

/* 小分製造日の最小値に13日を足した値が今日の日付よりも後ならば、起算日は「今日の日付」 */
Min ( 小分製造日 a ; 小分製造日 b ; 小分製造日 c ; 小分製造日 d ) + 13 > Get ( 日付 ) ;
Get ( 日付 ) ;

/* 小分製造日が全て空欄で製造日に13を足した値が今日の日付よりも大きい場合、起算日には製造日を入れる。小分製造日部分を削除しても結果に変化なし*/
小分製造日 a = "" and 小分製造日 b = "" and 小分製造日 c = "" and 小分製造日 d = "" and 製造日 + 13 > Get ( 日付 ) ;
製造日 ;

/* 小分製造日が全て空欄で製造日に13を足した値が今日の日付より小さい場合、起算日には製造日+13の値を入れる。小分製造日部分を削除しても結果に変化なし*/
小分製造日 a = "" and 小分製造日 b = "" and 小分製造日 c = "" and 小分製造日 d = "" and 製造日 + 13 < Get ( 日付 ) ;
製造日 + 13 ;

)
<!-- ここまで -->

どこか、基本的な所が理解出来てないと思うのですが、よろしくお願い致します。

%E8%B3%AA%E5%95%8F%E7%94%BB%E5%83%8F_150707.png

Outcomes