FileMakerで明細を作成する

NO IMAGE
ファイルメーカーで請求書や領収書といった、明細表を作る場合。
(正確に明細を作るというのでなく、レイアウト作成の考え方の問題ですので軽い気持ちで)
↓こんな感じで。
me1.jpg
まず普通に考えてみて、ちょっとした計算は自動でやってほしいですよね。
単価と数量を入れたら自動でかけ算くらいはしてほしい。
me2.jpg
上の画像で説明すると、【材料1】は単価5000円で数量10。
〈金額〉フィールドに〈単価×数量〉という計算式を設定すれば、自動で50000と入力されます。
【加工費1】には数量を入れてないので、単価10万でも金額は0。
合計金額に消費税5%を自動でかけて(課税対象額×0.05)、税込み金額が出てくる。
しかし実際にはきっちり単価×数量で物事は計算されるわけでなく、グロスでいくらとか、切りの良い数字に丸めるとか、色々あるわけです。
例えば、「材料費は本来75000円だけど、きりのいい所で7万円にしましょう」となったらどうするか。
金額フィールドに【70000】と入力できればそれで済むが、〈計算タイプ〉にしてあるので入力は弾かれます。
me5.jpg
すると数量か単価をいじらないと、金額フィールドの数字は変えられないことになる。

■単純な方法
me4.jpg
一番単純な解決方法。
数量を1にして、単価70000にしてしまう。
そしてテキストタイプで〈備考〉というフィールドを用意しておき、そこに15個分、と書き込む。
でもこれは、ちょっとエレガントではない。

■ややこしい方法
me3.jpg
次。
単価5000円という計算しやすい数字なので、1つ減らせば合計70000円にはなった。
でも数量15個で70000円、という実態には合いません。
じゃあ70000÷15で、単価を「4666.66666666…」円にしたらいいか、というと、それもおかしすぎる。

問題は、金額フィールドに書き込めないのがその元凶にあるわけです。
じゃあ自動で計算させるけど、書き込みたい時は書き込めるようにすればいいんです。
まず必要なフィールド。
〈数量〉  :数字タイプ
〈単価〉  :数字タイプ
〈金額自動〉:計算タイプ(計算式 =数量×単価)
ここにもうひとつ追加。
〈金額手書〉:数字タイプ
そして〈金額自動〉フィールドを少しいじります。
計算式 =If( IsEmpty( 金額手書 ) ; 数量 * 単価 ; “” )
〈金額手書〉に何も入力されなければ自動で計算、入力があれば空欄になるという式です。

me7.jpg
わかりやすく、両フィールドを比較します。
左から〈数量〉〈単価〉〈金額自動〉〈金額手書〉と並べています。
一番右の〈金額手書〉に何も書いてないので、〈金額自動〉に75000が表示されています。
me6.jpg
しかし〈金額手書〉に数字(70000)を入れると、〈金額自動〉は空欄になります。
そこで、
1,最背面に〈金額自動〉フィールドを置きます(念のためフィールド/コントロールの「動作」で入力を不許可にしておく)。
2,真上に、同じサイズの〈金額手書〉フィールドを置く。
3,〈金額手書〉フィールドの塗りつぶしを「無し」にする。
これで、金額は自動で計算される上に、自分で好きな金額を書き込めるフィールドができあがりました。
me1.jpg
最初の画像に戻りますが、1段目の金額50000は自動で計算されています。
しかし2段目は20000値引きということで、手動で30000と入力しています。