#目的
いろいろ試行錯誤の末ある程度実用に使えるファイルができたので、ファイルメーカーで開発する際の自分なりのルールなどをまとめたいと思います。
#環境
windows10(windows7からのアップグレード)
FileMaker 16 pro
#サンプルファイル
https://www.dropbox.com/s/bzj0rd051v9bqmi/%E5%B7%A5%E4%BA%8B%E5%A5%91%E7%B4%84%E7%AE%A1%E7%90%86%E3%81%9D%E3%81%AE4.zip?dl=0
layout_constructionがユーザーが使用するファイルとなります。
アカウントは admin pass:admin、user1 pass:user1 の2つを作成しています。
#0.前提条件
あくまで素人考えになりますので、参考程度に見てもらえればと思います。
##1.命名規則
###1-1.テーブルオカレンス
TO_{A001}{機能名}{テーブル名TB}_{目的など}
例えば下記の画像のようにアルファベットと数字で名前を付ける。テーブル名にはTBとつけてどのテーブルのオカレンスかわかりやすくする。この方法はfmstarting pointを参考にしています。フィールドを指定する際などに関連あるTO順に表示されるのでとても管理がしやすいです。
###1-2.フィールド
計算field:c_{フィールド名}
グローバルfield:g_{フィールド名}
データベースの管理画面で上記のフィールドは、下部に種類ごとにまとめておくようにしています。こうすることでexcelなどからインポートする際に対応させるフィールドが選択しやすくなります。計算フィールド、グローバルフィールドはインポートする必要がないため。
###1-3.スクリプト
(A0001)フォルダ名_{機能名}
フォルダ名はスクリプト整理するフォルダの名前。またスクリプトの中で実行するスクリプト(直接ボタンなどに割り当てないもの)には機能名の前にアンダーバーを付ける。
例(A0001)フォルダ名_{_機能名}
そうすることで、ボタンにスクリプトを割り当てる際に、アンダーバーがついているスクリプトは除外できるので管理しやすいと思います。
##2.グローバルフィールドを作成するテーブルの場所
###2-1.原則
ユーティリティーTBの中に作成する。
使用例:検索機能を作成する際の検索用のフィールドなど。
###2-2.例外
コンテキストに依存するもは必要となるTBに作成する。例えば、下記の画像のようにグローバルフィールドを用いてリレーションを作成してデータのフィルタリングをしたい場合はそのデータがあるTBの中に作成する(そうしないとリレーションが結べないため)。
##3.グローバル変数は作成しない
###3-1.理由
グローバル変数は複数のスクリプト、レイアウトで使用しているとどこで使用されているのかが分からなくなることがある。それを解決するためにBaseElementsというプラグインが発売されているが個人又は中小企業では購入できないと考えるため。
###3-2.代替案
グローバル変数の変わりにグローバルフィールドを使用する。理由はテーブル定義を見ればグローバルフィールドの存在が一目瞭然であるし、削除使しようとすると影響のあるスクリプト、TOが警告されてど
こで使用されているかが分かる。どのレイアウトに設置されているかまでは不明だが、グローバル変数を使用するよりも保守しやすい。
2020/04/27 訂正
分離モデルで作成すると警告はされなかったので訂正します。あくまで同一ファイルにあるものだけ警告されるようです。
##4.ファイルの使い方
###4-1.初期設定
自社情報、個人情報、社員情報、顧客情報を登録。
###4-2.工事登録
工事名、金額、工期などを登録。
顧客情報に支払条件を設定していればコピーボタンがあるので転記できます(同じ顧客でも工事によっては条件が異なる場合があるので、顧客情報とは別に工事にも支払い条件を持たせています)。
入金、原価、完成日などを登録。
請求書タブでは、支払条件を設定していれば自動で条件にあった回収予定を登録できます。
###4-3.締処理
データを修正できないようにするために締処理ができます。
金額工期は受注計上月(西暦4桁月2桁)、それ以外は日付で締処理をしています。
また、締め処理後にその締め処理対象の日付などでレコード登録した場合は翌月の締め処理で締めがされるようにしています。
例:202004月の締処理を行ったあとに2020/04/30の入金があった場合、202005月の締処理を実行すると締めがされます。
さらに、工事自体の締処理は工事詳細レイアウトの工事締日タブで入力した日付で締処理されます。工事が完成して全額入金があったものを締処理対象としたいため、下記の画像のボタンで締処理すべき工事を検索できるようにしています。
###4-4.会計年度の工事台帳
自社情報で設定した会計年度に応じて、年度で表示すべき工事を表示できるようにしています。決算変更届などのため作成する工事経歴書に活用できると思います。