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