#目的
ファイルメーカーというデータベースソフトを使用して、工事契約情報を管理するアプリを作成してみる。
ファイルメーカーを購入したのは約2年前でしたが、一度挫折し最近やっと使えるようになってきたので、同じように挫折してしまった方のお役に立てればと思います。
#環境
windows10(windows7からのアップグレード)
FileMaker 16 pro
#作成手順
##1.テーブルの作成
###1-1.基本情報テーブル
下記の通りフィールドを作成する。
・「工事番号」は年度の西暦4桁と3桁の数字を連結させたものを使用する。
例:2019年度の一番目の工事の場合->「2019001」
・「c_工事別税抜合計_工事一覧」は工事一覧に表示する工事別の集計です。
集計する場合は、集計フィールドを使用する方法もありますが、ここでは計算フィールドで対応しています。
理由は集計フィールドにすると、レコードを追加削除した際の再計算がされないことがあることと、集計結果がゼロの場合にゼロと表示できないためです。
また、金額のフィールドが1-4に示している「金額工期テーブル」でなく「基本情報テーブル」に作成していることに違和感があるかもしれません。SQLに慣れている方ほどこういったファイルメーカー特有のフィール作成に悩まされると思います。
理由としては、金額工期テーブルに作成して計算フィールでsum関数を使用すると想定通り集計されません。それはファイルメーカーのヘルプを参照すればわかりますがファイルメーカーに慣れていない方の感覚とは違った結果が返ってきます。そのため、「基本情報テーブル」で計算フィールを作成して、計算式の設定を下記のようにしてsum関数を使用すると期待通りの結果が返ってきます。
例:税抜金額の場合
・次のコンテキストから計算式を評価するを「TO_01_工事台帳_基本情報」に設定する。
・計算式の内容は「sum(TO_01a_工事台帳_金額工期_金額工期情報::税抜)」とする。
###1-2.顧客情報テーブル
下記の通りフィールドを作成する。
顧客CDはあ行->01 か行->02というようにして、4桁の数字を連結したものを使用する。
例:「あ」から始まる名前->「010001」
###1-3.社員情報テーブル
以下画像は省略しますのでファイルの中身を確認お願いします。
###1-4.金額工期テーブル
金額と工期は、変更契約が何度かある可能性があるため基本情報とは分けています。
##2.テーブルオカレンス(以下、TOとする)の作成
下記のようなTOを作成します。
作成していて難しかったところは、最新の工期を表示することでした。
レイアウト「工事一覧」では、工事別に金額を集計、最新の工期を表示するようにしています。
そのため下記のように2段回に分けてリレーションを設定しています。
・TO「TO_01e_工事台帳_金額工期情報_工期開始」と「TO_07e1_工事台帳_金額工期情報_工期開始_maxid」とのリレーションの照合に、金額工期情報テーブルに「g_工期開始終了日_空白除去_フィルタ」フィールドを作成して「1970/1/1」を設定して<=「工期開始」で工期開始が空白のレコードを除外しています。
「1970/1/1」以前のレコードを管理する必要がある場合は別の方法を考える必要があります。
・TO「TO_07e1_工事台帳_金額工期情報_工期開始_maxid」と「TO_07e2_工事台帳_金額工期情報_工期開始最新」とのリレーションの照合に、金額工期情報テーブルに「c_工事台帳_工期開始_maxid_フィルタ」フィールドを作成して=IDで照合することで最新の工期を取得できるようにしています。
説明がわかりずらいと思いますのでファイルをご確認ください。
##3.レイアウトと値一覧の作成
###3-1.工事登録レイアウトの作成
工事登録のレイアウトは下記のようにしました。
他のレイアウトはファイルを確認おねがいします。
原価情報などはテーブルを作成していないのでファイルでは動作しませんのでご了承ください。
###3-2.値一覧の作成
入力の効率化のために下記のような値一覧を作成して、フィールドに割り当てます。
・顧客分類:G…国 P…県 C…市 Z…民間
・元請・下請
・官庁・民間
・受注部門
・許可業種
・契約区分
##4.今後の展開
・会計年度で工事一覧を表示できるようにするために、別のTOを作成する。
・登録の確定キャンセルができるように「OnRecordCommit」を制御する。