普段マイクロソフトのアクセス(以下Accessに略)を使用してデータベース開発をしている自分がFileMakerを使って見積請求書システムを作成してみました。
https://pctips.jp/pc-soft/filemaker-quotation-invoice-system3/
今回は、
ココがポイント
親テーブルの複製からリレーションされた子テーブルの複製
になります。
ポータルレコード(親)からレコード複製の注意点
現在作成している仕組みの流れから、見積書と請求書の書類という親テーブルをポータルに設置して、そこから、親レコードを複製してからの、リレーションで組まれている子レコードを複製したいと思っています。
簡単に説明すると、見積書や請求書を複製して再利用するケースを想定しています。
ちなみに、親レコードだけの複製は、スクリプトを1行設置すれば実装できました。
しかし、リレーションされた子テーブルのレコードを複製する事が中々できませんでした。
ココに注意
なぜか?親レコードが2個複製される現象
から抜けられませんでした。
答えは簡単でした。
FileMakerを良く理解してない自分のミス
レコードを複製する時のレイアウトが問題だったようです。
上の画像のようなレイアウトの時に、複製をすると、書類データがメインで作られたレイアウトなので、書類データが複製されてしまうのです。
見積請求データを複製したい場合は、
ココがポイント
テーブル一つに対して、一つのレイアウトを準備しておく
と良いのかもしれません。
動作が成功したスクリプト
最初は、下記のサイトのスクリプトをマネしましたがうまく行かずに断念しました。
今思うと、子テーブルのレイアウトを準備しておけば、このスクリプトでうまく行ったのかもしれません。
さて、実際に使ったコードは下記のようになります。
9行目の「検索実行[記憶する]」の詳細は下記のようになります。
ところで、FileMakerのスクリプトって他のソフトにはコピーできないんですね。
コードをテキストでブログにアップしようと思いましたが、コピーができませんでした。
スクリプトデバッガとデータビューワ
今回のミスに気が付けたもの、メニューバーにある、スクリプトデバッガとデータビューワを使って1行づつスクリプトを動かしながら動作確認をしたからなのです。
これは自分の思ったような動きをしない時にスクリプトを確認する上では確実に有効な調査方法ですね。
見積書から請求書へ複製方法
設計では、書類データの請求フラグを1の場合が、見積書となり、2の場合が請求書になるようにしました。
つまり、複製データを作成する時に、請求フラグを2に変更できれば良いという事になります。
上の画像の様に、フィールド設定にて、請求フラグを2に変更しました。
あと、ついでに、請求書タブに移動するように設定しました。
ココがポイント
タブに移動させるにはちょっとコツがありました
請求書タブにオブジェクト名を付ける必要があるのです。
自分は、そのまま「請求書タブ」というオブジェクト名を設定しました。
「位置>>名前」という所になります。
このオブジェクト名の設定をしないとタブの移動ができませんので御注意ください。
https://pctips.jp/pc-soft/filemaker-quotation-invoice-system5/