ファイルメーカーのポータルで、スクリプトを使った行の追加を掲載します。
<Photo Data>2017/05/05鳥取砂丘にて
Canon EOS-1D MarkⅣ
EF16-35mm f/2.8L USM
ISO100 1/200 f8.0 35mm
下のスクリーンショットは、販売管理の受注伝票のポータルを使ったサンプルです。
2番目のスクリーンショットはその時のリレーションシップです。
受注伝票を事例に説明いたします。
商品を受注すると、その情報を保存する場所が必要となります。
このサンプルでは「受注データ」というテーブルに保存することにします。受注データに受注価格や数量などといった名前のフィールドを作ります。
ポータルの下地となる受注伝票は顧客と伝票番号を発番して登録します。
ファイルメーカーのポータルの定義は、(ポータルを組んだレイアウトに)リレーションした関連データを表示させるとなっています。
ポータル設定で、関連レコード表示の所を「受注データ」とします。
これで「受注データ」の内容がポータルに表示される様になります。
ポータルのフィールド配置などは他の投稿を参照ください。
受注伝票で商品の各情報を入力すると、ポータルで入力、保存、表示の3つを行うことが出来る様になります。
一番上の伝票画面はサンプルデータが2件入っています。更に商品を追加入力しなければならないこともあります。
この時、ポータルに行を追加する場合、上のリレーションシップの図の編集で、受注データ側の「このリレーションシップを使用して、このテーブルにレコード作成を許可」をチェックするのが一般的です(レコード作成を許可とすると下の受注伝票のスクリーンショットの様に最下行がいつでも入力出来る状態になります)。
この方法ではポータルの最下行に入力がまだ終わってない時も行Max値と行数が異なるといったことがおこります。ポータル内の語句サーチや行の挿入並び替えなどを行うとき不便になることがあります。
スクリプトによる方法を以下に紹介します。
やり方は受注データに新規にレコードを起こしポータルに新行を発生させるやり方です。
この時は、リレーションシップ編集のレコード作成を許可はチェックしません。
ポータル行とデータ数も一致します。
このスクリプトを使った方法による新行を追加した画面を最下部に載せました。
K.Fukuma
1st 2017/07/01
2nd 一部見直し 2017/07/06
3rd ミス修正 2017/07/07
4th 他と共通の題目に見直し 2017/07/07