みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
お世話になります
windows7 FM12です。
レイアウトをリスト形式にして横にフィールドを並べています。
スクロール速度、計算速度が遅く困っております
<リレーション>
テーブル1--------自己---テーブル(1)
id----------------=-----id
グローバル指示日-=-----年月(計算フィールド)
指示日----------->-----指示日
<フィールド>
指示数(計算)fromテーブル1=IF(IsEmpty(納入数);指示数;納入数)
納入数(計算)fromテーブル1=Case(状態="分納";分納数;状態="完納";指示数)
指示引当(計算)fromテーブル1=Sum(テーブル(1))::指示数)
納入引当(計算)fromテーブル1=Sum(テーブル(1))::納入数)
発注残数(計算)fromテーブル1=指示引当-納入引当
{指示数、納入数はすべて計算フィールドです}
この様になっています。
計算フィールドの値に他の計算フィールドを使用すると、計算は遅くなるものでしょうか?
この様な計算フィールドの使用方法は間違っているでしょうか?
情報不足でありますが、何らかのアドバイスを頂きたいです
よろしくお願いします
Offline
指示引当、納入引当が、ほぼ全レコードを対象になる計算になっていますね。これは、非常に負荷が大きいです。
過去のデータの修正がほとんど無いのでしたら、それらのフィールドを数値フィールドにして、自動入力でその計算式を設定しておくと、かなり早くなるはずです。
もし、修正された場合には、それ以降の日付の各レコードを、その計算式で全置換してやると、修正可能です。
Offline
「指示数」が自己参照してる。
「納入数」と「指示数」が相互参照してる。
ということで、フィールド定義ができないと思いますが。
それはさておき、
id というと、普通、ユニークな値だと思いますが、Sum()の対象にするということは、ユニークではないのかな。
同じidを持つレコードは同じSum()計算をしますが、それが何度も行われるのも遅くなる原因かと。
自己リレーションではない方法を考えてみるのも手かな。
Offline
>「指示数」が自己参照してる。
テーブル名とフィールド名を実際のと変える時に間違えてるんでしょう。
>Sum(テーブル(1))::納入数)
もカッコがおかしいし、テーブル名にカッコは通常使えません。
よく見直してください。
指示数以外はidでの範囲内のリレーションだから、「ほぼ全レコードを対象」というほどでもなさそうですが
発注残の計算に「グローバル指示日」を使ってるのが変な感じ。
このフィールドはどういう意味?棚卸ですか?
回答ありがとうございます。お返事遅れました
「指示数」が自己参照してる。
「納入数」と「指示数」が相互参照してる
すみません、この指示数だけ数字フィールドの間違いでした
同じidを持つレコードは同じSum()計算をしますが、それが何度も行われるのも遅くなる原因かと
これについて現在施行錯誤しております。
idは部品マスタのidであります。リレーションの説明が不足でした
部品別をSumしています
Sum(テーブル(1))::納入数)
これについては、この投稿の際に()を記入してしまいました
単にテーブル1の自己リレーションです
発注残の計算に「グローバル指示日」を使ってるのが変な感じ
これについては、その月分だけでSum()したい為、2014/01=年月で
リレーションしています。
それらのフィールドを数値フィールドにして、自動入力でその計算式を設定しておくと
これを知らなかったので試したところ、変化はありませんでしたが
他にも、計算フィールドがいくつかあり、まだ全部変更できていない状況です
<リレーション>
<部品マスタ>-------------テーブル1--------自己---テーブル(1)
id-------------------------=id----------------=-----id
グローバル指示日-=-----年月(計算フィールド)
指示日----------->-----指示日
同じidを持つレコードは同じSum()計算をしますが、それが何度も行われるのも遅くなる原因かと
これについて、現在試行錯誤しております。
また何かアドバイスありましたら
よろしくお願いします
[ Generated in 0.007 seconds, 10 queries executed - Memory usage: 512.91 KiB (Peak: 517.45 KiB) ]