みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Windows7 filemakrpro11を利用しバス料金の見積り計算式を作成しております。
テーブルは「料金表」と「計算式」
テーブル「料金表」のフィールドは
項目(テキスト)
大型バス料金(数字)
中型バス料金(数字)
(入力後例:表形式)項目別で1レコードに2種類(大型バス料金&中型バス料金)を入力しております。
項目 大型バス料金 中型バス料金
片道送迎 ¥30,000 ¥20,000
往復送迎 ¥58,000 ¥39,000
終日観光 ¥100,000 ¥80,000
夕食送迎 ¥25,000 ¥20,000
★バスの種類は2種類以上増えませんが、項目は上記以外にもあります。(省略しております)
テーブル「計算式」のフィールドは
バス車種(テキスト) 値一覧とドロップダウンリストで 大型バス 又は 中型バス より選択
項目(テキスト) 値一覧とドロップダウンリストで 片道送迎 又は 往復送迎 又は 終日観光 又は 夕食送迎 より選択
バス料金(計算) 下記でバス代を取り込んで、その後計算に利用します。
If ( バス車種="中型バス" ; 料金表::中型バス料金 ; 料金表::大型バス料金)
一台コスト割(数字) 乗車人数をレコード毎に手入力します。もし空欄の場合は÷1として算出。
一台コスト掛(数字) 項目ごとに変わる割引率を手入力します。もし空欄の場合はx1として算出。
小計(計算)
If(一台コスト割; If( 一台コスト掛 ; バス料金/ 一台コスト割 * 一台コスト掛 ;バス料金/ 一台コスト割 * 1); If( 一台コスト掛 ; バス料金 / 1 * 一台コスト掛 ; バス料金 / 1 * 1 ))
上記計算式の意味は理解しておりませんが、前任者が作成した類似した式を利用しました。
(入力後例:フォーム形式)
バス車種は 大型バス を選択
項目に 往復送迎 を選択した際、 バス料金に¥58,000と表示させ、一台コスト割と一台コスト掛は手入力で都度変わる数値を入力し、小計を出したいです。
項目 バス料金 一台コスト割 一台コスト掛 小計
往復送迎 ¥58,000 ÷ 20 x 0.75 = \2,175
リレーションはテーブル「料金表」と「計算式」の項目です。
項目のフィールドが上記の様に1つだけの場合は上記で対応出来たのですが、1レコードで項目は複数あります。
項目、バス料金、一台コスト割、一台コスト掛、小計を繰り返しで5フィールド作成して、レイアウトで5フィールドを縦に並べましたが、
2-5で項目を選択しても下記の様にバス代金が取り込めませんでした。
項目 バス料金 一台コスト割 一台コスト掛 小計
往復送迎 ¥58,000 ÷ 20 x 0.75 = \2,175
終日観光 ÷ 20 x 1 =
夕食送迎 ÷ 10 x 0.5 =
往復送迎 ÷ 15 x 0.3 =
片道送迎 ÷ 30 x 0.7 =
繰り返しフィールドですと、1行目だけにしか表示されないのでしょうか?対応方法があれば教えて下さい。
繰り返しフィールドは1行目だけにしか表示されない場合、繰り返しフィールドではなく、項目、バス料金、一台コスト割、一台コスト掛、小計を
各5つのフィールドを作成するのでしょうか?
その場合、リレーションは料金表テーブルの項目と計算式テーブルの項目1、項目2、項目3、項目4、項目5と項目の5つのフィールドと繋いだのですが、
項目1にもバス料金が表示されなくなってしまいました。
ここで行き詰まりご相談させて頂きました。
ファイルメーカープロに関しては本当に素人で、退職した前任者が作成した物を変更しておりますので素人でも対応出来る方法で教えて頂けると幸いです。
宜しくお願い致します。
Offline
大雑把で申し訳ないけど
項目とバスの種類で 料金表にリレーションして
ルックアップ するのが大方のやり方です
空欄の時には1として計算する
は別途計算フィールドを作るといいかもしれない。
Offline
> 項目のフィールドが上記の様に1つだけの場合は上記で対応出来たのですが、1レコードで項目は複数あります。
これが面倒の元です。
1項目を1レコードの別テーブルにして、
元のテーブルとリレーションで、複数項目をポータルで表示出来ます。
Offline
シャチさん。アドバイス有難う御座います。
料金表のフィールドを下記に訂正し、項目とバスの種類でリレーションをしてルックアップをしたら料金が表示されました。
テーブル「料金表」のフィールドは
項目(テキスト)
バス車種(テキスト) 大型バス又は中型バス
バス料金(数字)
(入力後例:表形式)項目と車種別で1レコードに1つの料金に訂正しました。
項目 車種 バス料金
片道送迎 大型バス ¥30,000
片道送迎 中型バス ¥20,000
往復送迎 大型バス ¥58,000
往復送迎 中型バス ¥39,000
終日観光 大型バス ¥100,000
終日観光 中型バス ¥80,000
夕食送迎 大型バス ¥25,000
夕食送迎 中型バス ¥20,000
上記で自分が作りたかった計算式は出来ましたが、下記の意味が解らず教えて頂けると助かります。
>空欄の時には1として計算するは別途計算フィールドを作るといいかもしれない。
一応下記に記載した式で計算は出来るのですが、前任者が作成した式を利用しただけなので、意味は解っておりません。
より良い方法があればもう少し具体的に教えて頂けると助かります。
> If(一台コスト割; If( 一台コスト掛 ; バス料金/ 一台コスト割 * 一台コスト掛 ;バス料金/ 一台コスト割 * 1); If( 一台コスト掛 ; バス料金 / 1 * 一台コスト掛 ; バス料金 / 1 * 1 ))
Offline
上記で自分が作りたかった計算式は出来ましたが、下記の意味が解らず教えて頂けると助かります。
>空欄の時には1として計算するは別途計算フィールドを作るといいかもしれない。
最初の投稿で 台数が空白のときは1で計算と書かれていたので
計算式の中にその条件入れると、分かりづらいかと思って
別に 代数学右派の時は 計算フィールドで Case(IsEmpty(台数);1)という計算フィールドを
作っておくと分かり易かと思っただけです。
Last edited by シャチ (2017-01-27 20:16:57)
Offline
シャチさん。
早速のアドバイス有難う御座います。
見た事がない関数が出てきたので、勉強して意味を理解します。
取り急ぎお礼まで。
チポさん。
プロの方から見て面倒な元なのでいつか息詰まると思いますが、
何とか最低限の形は出来たので先ずはこれを使ってみます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 579.87 KiB (Peak: 584.75 KiB) ]