みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
動作を軽くするには
できるだけ計算フィールドを使わずに
スクリプトで計算した結果を数字フィールドにいれたほうがいいですか?
例えば個数×単価=金額の計算などをすべてスクリプトとトリガでやるような感じです
Offline
計算フィールドで動作が重くなる原因になるのは主に非保存を多用している場合です。
数字フィールドにスクリプトで値を入れても索引付きの計算フィールド(結果:数字)でも
計算をした際に計算を行う時間(僅かですが)が掛かることに変わりはありません。
スクリプトを作ったり、設定したりする時間が増え、メンテナンス性が下がってコスト高な可能性もあります。
知識・理論が先行して手を付けるのを躊躇う前に、まずは手を動かしてみられることをオススメしますよ。
Offline
計算実行のときの速度ではなく、
計算フィールドだと非保存になるので
数字フィールドにして、計算はスクリプトトリガで行えば
検索時やレイアウト切替時に再計算しないので速くなりますか?
ということです
個数フィールドを変更したときに、個数×単価を行い、その結果を数字フィールドに格納するような
スクリプトトリガという感じです
例なので単純な式にしてますが、他テーブルを参照したりする複雑な式などでも効果はありませんか?
Offline
#3 > 計算フィールドだと非保存になるので
決めつけはいけません。そんなことはありませんよ。
ご自身で動作確認しての投稿なのかな?
他力より先にご自身の手を動かしてくださいネ。
Offline
単価などはマスタから持ってくるし複雑な計算フィールドの場合は参照しまくるので
結局保存できないのでそのように書きました
伝わりにくかったならすみませんでした
Offline
関連参照値でも、Lookup関数で計算取得すれば計算結果の保存指定も自由に選択できます。
さらに、Lookup関数は複雑な複合式の部分式としても組み込めます。
P.S.: また、ExecuteSQL関数でも同様の効果が得られます。
Last edited by Hiro (2017-07-14 03:31:12)
Offline
Pages: 1
[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 515.2 KiB (Peak: 521.84 KiB) ]