みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
お世話になっております。
期間の終了日を設定したくない、つまり更新するまで無限の期間を設定したい場合には、皆様はどのような処理をしているのかをお聞きしたいです。
例えば、請求書。
2023/08/01から、新しく”備品A"という商品を¥1,000で仕入れたとします。
3ヶ月後の、2023/11/01から¥1,100に金額を改定するのを想定し、テーブルにその金額をいつまで適用させるのかを入力するフィールドを作成しました。
マスターデータ
商品ID ------- 商品名 ------- 適用開始日 -------- 適用終了日 -------- 金額
1 ------------- 備品A -------- 2023.08.01 ------ 2023.10.31 ------ ¥1,000
2 ------------- 備品A -------- 2023.11.01 ------ ????? -------------- ¥1,100
でもそうなると、商品ID : 2 の方の適用終了日は何日…?
このような処理をしたい場合、皆様は、適用終了日の、?????の部分をどう処理しますか?
私の場合、以前は、適用なら 1、変更された過去のものは 0 としてフラグだけのフィールド作成し、リレーションを組んだりしていましたが、今では期間で絞った方が処理しやすいのかな、と思い、更新した際は入力の自動化で ????? の部分は、"3000/12/31" と勝手に入るようにしています。
期間で分けたポータル表示もしやすいので。
ですが、入力する側からすると、何この3000年っていう数字…バグ?ともなるので、うーん…と悩んでいます。
現在は下にバグじゃないよーと注釈つけています。
他にも、変更がなくても1年の定期更新はどうだ…?とも考えたのですが、¥1,100で備品Aを購入したお客様は誰だ?と逆検索をする際になかなか億劫になるのかな、と…。
上記以外にも、こちの処理の方がいいかも、などありましたら、ぜひぜひ是非是非何卒何卒ご助言お願いしたいです。
3000年で怪しければ4000にすれば、仕様上の最大値なので
「¥1,100で備品Aを購入したお客様は誰だ?と逆検索」
これは単純に購入履歴のテーブル?でその条件を検索するだけなので、マスターがどうなってるかは関係ないのでは。
入力用の「適用終了日」は日付フィールドにしておいて、
実際に適用終了日を判断するときは、計算フィールドで「適用終了日」フィールドが
・空だったら3000/12/31、
・空でなければ「適用終了日」フィールドの値
となるようにして、評価はこの計算フィールドでするようにしてはどうでしょうか。
私は、適応期間の開始日のみを持たせておきます。期間限定ならば、終了日の翌日で別のレコードを作っておきます。
比較リレーションを張れば、販売管理との連携も簡単です
上の例でしたら、
マスターデータ
商品ID ------- 商品名 ------- 適用開始日 ----------- 金額
1 ------------- 備品A -------- 2023.08.01 ----- ¥1,000
2 ------------- 備品A -------- 2023.11.01 ----- ¥1,100
という入力にしておき、
売上明細. 単価マスター
商品ID. =. 商品ID
日付. >=. 適用開始日
というリレーションを張り、適用開始日で降べきにソートしておきます。
明細側から単価を参照すると、10月までは8月開始のレコードが参照されそのデータが、11月からは両方のレコードが対象となり、日付で降べきにソートされた最初のレコードの11月レコードが参照されます。、
Last edited by Shin (2023-08-13 22:27:58)
Offline
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 551.83 KiB (Peak: 579.59 KiB) ]