読者です 読者をやめる 読者になる 読者になる

匍匐前進日記

行政職で森林・林業にかかわってます。浅いIT知識(趣味の範囲)を使って楽しようと思ってます。So-netから移行してきました(20160620)。移行前のは20100107~。記事は時々加筆修正することがあります。

Filemakerで編集ロック

ソフトウェア・データベース

FileMaker初心者なりの工夫の話。
初期状態ではロックされた状態で、新規レコードや複製レコードを作らないと入力できない、っていう機能をやりたかった。
どうも複数のレイアウトを使うとこでできるらしい。

FileMakerはデータをいろんなレイアウト(アクセスでいうところのフォーム?)画面を作って、そこで表示させて入力や検索を行う。
初心者的にはレイアウトを作りながらテーブルを定義していけるところが敷居が低くていいわけです。

当然、ちゃんとしたデータベース作るなら思い付きじゃなくてちゃんと正規化してリレーションも組んでやるのがいいわけですが、
それはちゃんとデータベースの設計を詰めれるようになったらできることで、
ちょっとした自分用のデータベースを作る分にはそんなに厳密にやんなくてもいいと思ってた。
どう使いたいかさえ頭に入ってたら、それをすばやく具体化するのにいいツールだと思います。

いままで、レコードの複製を忘れて元のレコードをいじっちゃって壊してしまうことが多々あって、
初心者向けの掲示板とか漁ってみたこともあったけど、
自分のレベルで理解できる言葉で書いてあった試しがない。

以上、前置き。
上記の機能を実現する手順としては、

  1. 入力用のレイアウトと作る(当然フィールドも設定する)
  2. 各フィールドをインスペクタのデータタブの設定でブラウズモードで入力ができないようチェックをはずす
  3. そのレイアウトをコピーする
  4. コピーしたレイアウトでは2.の設定を変更してブラウズモードでも各フィールドの入力をできるようにする。
  5. 元のレイアウトにボタンを2つ作って、スクリプト「a.コピーしたレイアウトに移行して新規レコード作成」「b.コピーしたレイアウトに移行してレコード複製」をそれぞれ設定する(当然ボタンにはそれらしい名前を付ける)
  6. コピーしたレイアウトにボタンを3つ作って「c.新規レコード作成」「d.レコード複製」「e.元のレイアウトに戻る」の5つをつくるをそれぞれ設定する(上と同様ボタンに名前を付ける)
  7. 終了するときに元のレイアウトに移行するようようにスクリプトトリガを設定する

こうすることで、新規レコードや元のレコードを複製しない限りは編集できず、
過去のレコードを知らず知らずに上書きしてしまう事故がかなり防げると思う。
スッキリした。