みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
初めまして。現在作成中なのですが行き詰ってしまい助言をお願いします
FM12ad win8.1を使用しています
簡単にいいますと、燃費計算をしたいです
テーブルは燃料・走行距離など別テーブルでつくっています
入力用テーブルに、タブコントーロールを使用して表示しています
複数の管理をしていきますので、車番で検索をかけようと思いますが、
燃料を入れなくても走行距離は毎日1レコードとして入力しますので、燃料補給までに数日間の走行距離を自動的に計算して表示することは可能でしょうか?
ラジオボタンを設置して未集計・集計済を表示して燃料いれるまでは未集計にチェックしたものだけを車番ごとに計算して表示、燃費計算が終わったら、集計済みと置き換えていきたいと思っています
スクリプトなどで自動化できますか?
計算式など助言していただけると助かります
他に複数台管理で簡単なやり方ありますか?
燃料テーブルに
給油日、車番、給油量、その時点での走行距離のフィールドを用意。
給油日>給油日
車番=車番
で自己リレーションをかけて、
給油日に対して降順ソートをかける。
で計算式は
(燃料T::走行距離 - 燃料T_前回::走行距離) / 燃料T::給油量
という形はどうでしょうか。
便宜的に[車両マスタテーブル]、[運行管理テーブル]があるものとして
[運行管理テーブル]
[車両ID] //車両マスタのID
[運行日]
[走行距離]
[給油量] //給油がない日は0
[燃費] 累積燃費対象距離/給油量
[累積燃費対象距離]
以下の計算式
If(給油量>0;
Let([
%key_last =
ExecuteSQL (
"select max(\"運行日\") from \"運行管理テーブル\" where \"給油量\" >0 and \"車両ID\" = ? and \"運行日\" < ? ";
"";"";車両;運行日);
%key_current = 運行日];
ExecuteSQL (
"select sum(\"走行距離\") from \"運行管理テーブル\" where \"車両ID\" = ? and \"運行日\" > ? and \"運行日\"<=?";
"";"";車両ID;%key_last;%key_current)
);0
)
LET式内のExecuteSQL関数で、車両IDが同一で給油がある最後(MAX)の日付を得て、その値以上の日と[運行日]の間の走行距離の合計を求めています。
これにより、日報テーブルの1レコードの中で累積燃費対象距離、その間の燃費が得られます。
Pages: 1
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 504.27 KiB (Peak: 514.98 KiB) ]