みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
はじめまして。ファイルメーカー初心者です。
現在、名簿を作成していますが年齢フィールドについてです。
年齢フィールドを作成する場合、(現在の日付)と(生年月日)から計算で値を求めようと思っています。
そこで、
1.年齢を計算フィールドで作成して計算式を入力した場合
2.数字フィールドで「入力値の自動化」の計算値に計算式を入力した場合
(「フィールドに既存の値が存在する場合は置き換えない」のチェックを外す)
この2つの場合で作成した場合、どのような違いがあるのか分かりません。
計算をして値を求めるタイミングが違うのでしょうか?
また、名簿は全レコード20万件ちかくになる可能性があります。
その場合、この2つのフィールド設定の違いでファイルが重くなる可能性はありますでしょうか?
よろしくお願いします。
Offline
年齢は、常に再評価されるべき値ですね。ですから、計算フィールドにする方がいいでしょう。非保存にしておくと、そのフィールドが表示されるたびに評価されます。(表示された時点での年齢に更新されます)
自動入力は、上書きを許可しておくと、その中の式が評価されると更新されます。そのタイミングは、その式が参照しているフィールドが変更(新規入力を含む)されたら評価されます。ところが、年齢が参照しているフィールドは、おそらく生年月日だけですから、それは更新されることは無いでしょうから、新規入力された時以降に再評価されることはありません。つまり、何らかの特別なアクションを起こさない限りは、値は更新されません。
Offline
年齢の日別自動更新には、結果の非保存(=非索引:必要な都度 求める)が必須です。
そのため、自動更新は非保存の計算フィールドでしか実装できません。
非保存フィールドは、マス処理(検索、ソート、照合キー、値一覧表、一覧リスト表示など)に適しません。
必要な時は、保存フィールドによる代案を工夫しましょう。
例えば、二十歳の人を検索するなら、本日で二十歳を得る誕生日を逆算して、そのキーで誕生日(索引フィールド)を検索すれば再計算ロスを防げます。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 547.81 KiB (Peak: 579.75 KiB) ]