1. FileMaker Paradise
  2. 実践編
  3. マスターから選択したデータを見積書・請求書などの帳票にコピーする

マスターから選択したデータを見積書・請求書などの帳票にコピーする

見積書や請求書・納品書といった商取引に使用するものをはじめ、様々な販売や業務管理では、マスターに登録されたアイテムを帳票に追加するといったパターンがよく使われます。今回は、その方法について紹介します。

マスターとは何か

見積書や請求書などで、商品などを入力する際に、毎回キーボードで商品を入力するのは非効率です。そこで、商品マスターというあらかじめ商品などのリストを作っておき、そこから簡単に入力せずに帳票に登録するのに使われます。

商品マスターには、こういった入力の省力化という点と、会社内で複数の人が入力する場合、商品名や価格などが入力する人によって違うということを防ぐ効果もあります。

まず、商品マスターを作成しましょう

最初にマスターを作成していきます。ここでは、基本的な例を取り、下記のようにテーブルを作成します。

商品マスターテーブルの例

帳票(見積書)のテーブル作成

帳票には、基本的に2つのテーブルを用意するのが一般的です。帳票は主に、件名や日付などを入力する基本(マスター)部分と商品などを複数入力する明細部分に分かれます。それぞれにテーブルを作成して、リレーションシップでつなぎます。

見積書マスターテーブル 見積書明細テーブル

金額フィールドは「単価*数量」となっています。

見積書マスターテーブルと見積書明細のリレーションシップの例
リレーションシップの編集の例

リレーションシップの編集で、「このリレーションシップによるレコードの作成を許可する」」にチェックを入れます。

帳票(見積書)のレイアウトの作成

見積書のレイアウトでは、見積書マスターのテーブルを設定します。また、ポータルを配置し、下の画像のように設定を行います。先ほどの「このリレーションシップによるレコードの作成を許可する」によって、このポータルで、見積書明細のテーブルにレコードを追加したり、編集することができるようになります。

見積書レイアウトの作成 ポータル設定ダイアログ

ポータルをダブルクリックして開けるポータルの設定ダイアログでは、「ポータルレコードの削除を許可する」「垂直スクロールを許可する」にチェックを入れておきます。

商品マスターから見積書明細にコピーする方法1-リレーション(ルックアップ)で追加

次に商品マスターから商品を選んで、見積書に追加する方法を2通り紹介します。

まずは、リレーションシップを使用して、ルックアップによって追加をします。

下記の図のように、商品id同士のリレーションシップを設定します。見積書明細テーブルの商品idのフィールドに「_kf_」の接頭語を追加しました。これはつけなくても構いませんが、リレーションのキーになっていることを示しています。

商品マスターとのリレーションシップ 商品マスターテーブルのフィールド変更とルックアップの設定

次に見積書明細テーブルの商品名、単価のテーブルにルックアップを設定します。各フィールドのオプションを開き、ルックアップにチェックを入れて、ダイアログを下記のように設定します。

商品名、ルックアップの設定 単価、ルックアップの設定

これで、先ほどの見積書のポータルの明細行の商品idの部分に、データを入力することによって、商品マスターの同じ商品idのレコードの商品名と単価をコピーして、自動で見積書に入力されます。

商品idを覚えていれば、直接入力しても構いませんが、商品が多数の場合、それは難しいことなので、ウィンドウを開いて、そこから商品を探して選択できるようにしたいと思います。

商品マスター

まず、このように商品マスターのレイアウトを作ります。リスト形式で、商品マスターを表示します。レコードの左側に矢印のアイコンを設定したボタンを配置します。このボタンには後で、スクリプトを設定します。

商品マスターを見積書から開く

次に、見積書の明細行に矢印アイコンのボタンを配置して、下記のスクリプトを設定します。商品マスターを開くスクリプトです。この例ではウィンドウを開くだけのものですが、状況に応じて、検索をかけてレコードを絞ってもいいでしょう。

商品マスターを開くスクリプト

商品マスターから選択されたIDを挿入

最後に商品マスターから選択されたアイテムのIDを見積書の明細行に挿入します。

商品マスターidを挿入するスクリプト

このスクリプトを商品マスターの「矢印」のボタンアイコンに設定します。このスクリプトは変数に商品IDを入れ、商品マスターのウィンドウを閉じて、見積書に挿入します。

商品マスターのボタンアイコンにスクリプトを設定

また、ルックアップが設定されているので、商品idを入力すると商品名と単価が自動でコピーされます。

ルックアップを使用しない方法

先ほどとは違い、ルックアップを使用しないで、明細行にデータを設定します。基本的には、先ほどの方法をあまり変わりありません。

まず、見積書明細と商品マスターのリレーションシップは必要ありません。ルックアップも使用しません。

見積書に商品マスターの情報を挿入・コピーするためのスクリプト

このスクリプトを先ほどのように商品マスターの矢印アイコンのボタンに設定するだけです。