第112回 ポータルを含めて複製する
こんにちは。エヌ・ケイ・カスタマイズの濵田です。
弊社では夏季休業を10日から16日まで頂いておりました。
私は休業期間中、妻の実家が近くのためほぼ毎日遊びに行き、美味しい食事をいただき、ゆっくり過ごせてリフレッシュすることができました。
お盆も明け本日から業務を再開していきます。
引き続き宜しくお願い致します。
今回は、「レコード複製」をしてもポータル上のデータは複製することができないため、ポータルの複製方法とポータルを含めて別のテーブルへ複製する方法について学習しました。
以下の記事は、Claris FileMaker 関数・スクリプトガイド(バージョン 19 対応)より、
Claris FileMaker 公式トレーニング教材
「25.ポータルを含めて複製する(834ページ)」を元に掲載しています。
この文献から、Loop関数を利用したデータの複製方法を学習することができました。文献の執筆者、関係者の方々に深謝いたします。
なお、このブログ記事の趣旨は、弊社所属スタッフの Claris FileMaker 学習の成果を公開することを目的とし、同時に、参考文献の内容の紹介に資するものであることを Claris International Inc. が確認しています。
はじめに
ポータルとは、リレーションシップが設定されている「関連テーブル」のデータを表示することができる機能になります。
このポータル上のデータが「レコード複製」をしても複製できない事象ついて、実際の操作で確認していきます。
下記のレコードではポータルにデータがある状態です。
このレコードを複製してみます。
新しいレコードに「顧客名」は複製されましたが、ポータルのデータは複製されませんでした。
原因
上記の見積レイアウトに紐づけられたテーブルが「見積」であるのに対して、ポータルに紐づけられたテーブルは「見積_見積明細」になります。「レコード複製」をしても別のテーブルのレコードは対象外となるため、複製することができないようです。
方法
では、ポータルのデータを複製するにはどうすれば良いのでしょうか?
調べたところ3つの方法があるようです。
- 変数に格納し別のテーブルへの複製
- 関連レコードへ移動し複製
- レコードをエクスポート→インポート
今回は変数に格納し別のテーブルへ複製し、ポータル上のデータを複製する方法を実際に試していきたいと思います。
考え方
ポータルの行数分の内容を変数の繰り返しを利用して格納し、親側テーブルのレコードを複製した後に変数からレコードへ展開して複製後の親側テーブルのID を設定します。
実装
(1)「見積」テーブルと「見積明細」テーブルを「見積ID」でリレーションします。
(2)スクリプトを準備します。
※コメントの確認がしやすいように赤文字へ変更しています。
実行例
(1)複製(変数版)のボタンに設定した上記スクリプトを実行します
(2)見積ID が更新され、ポータル上のデータを含めて複製することができました
まとめ
いかがだったでしょうか?
今回の実装では同じテーブルで複製しましたが、複製先を別のテーブルに指定することで、別のテーブルに複製することも可能です。ポータル上のデータを複製することができれば、入力の手間が省けますので機会がありましたら是非試してみてください。
最後までご覧いただきありがとうございました。
それでは、来週もお楽しみに!
参考文献: Claris FileMaker 公式トレーニング教材 から、「Claris FileMaker 関数・スクリプトガイド」等を参考にしています
https://content.claris.com/fmb19_reg-ja