2016年3月31日木曜日

マージフィールドを使おう! Part1

こんにちは!

今回と次回はマージフィールドについて取り上げてみたいと思います。

マージフィールドとは何か


マージフィールドとはテキストとしてフィールドのデータをレイアウト上に表示する機能です。

マージフィールドには下記のような特徴があります。

・フィールドの内容を編集できない

・テキストとして扱われるので、他のフィールド(マージフィールド)をくっつけて表示できる

・検索モードでは条件を入力できない

・フィールドと同じように「データの書式設定(3ケタ区切りコンマを付けたり、平成○○年と表示したり)」は可能

配置の仕方

配置の仕方は2通りあります。

レイアウトの編集画面で「挿入」→「マージフィールド」を選択します。

フィールドのリストが出ますので、選択をします。

2つ目は直接テキストツールで入力する方法です。

テキストツールで配置したいところにドラッグします。

<<フィールド名>>というように入力します。

関連フィールドの場合は<<テーブルオカレンス名::フィールド名>>になります。

これで、フィールドの内容をテキストとして表示できます。

使用例

では、このマージフィールドどういったときに使うのでしょうか?

私が良く使うのは、封筒や見積書などのお客様の宛名を作成するときです。

ファイルメーカーでマージフィールドを使う








マージフィールドを使用せずに普通にフィールドを配置するとこのような形で配置するでしょう。

郵便番号以外の都道府県名、市区町村、それ以降の住所は宛先によって長さがまちまちで、長い名称にフィールドの幅を合わせるしかありません。

マージフィールドを使わないとこんな形です。








ちょっと大げさですが、このように離れた感じの表示になります。

正直みっともない感じになるので、ここでマージフィールドを使います。

マージフィールドを使う例です。








マージフィールドをこんな感じに配置してみます。

ちなみにマージフィールドは同じテキストの枠内に連続して配置することができます。

今回の例だと、郵便番号から住所2までは同じテキストとして扱われます。郵便番号、市区町村、の後に改行が入っています。

マージフィールドを使うと非常にスマートになります。








ブラウズモードではこんな感じになります。

次回はさらにマージフィールドの使い方の例を紹介したいと思います。

次の記事「マージフィールドを使おう! Part2」

2016年3月15日火曜日

ExecuteSQL関数を使おう!

こんにちは!

今回はExecuteSQL関数を使おう!をテーマにします。

ExecuteSQL関数ってなに?

ExecuteSQL関数はFileMaker(ファイルメーカー)12シリーズから登場した、比較的新しい関数です。

FileMaker Proのヘルプにはこのように目的の説明があります。

指定したテーブルオカレンスに対する SQL クエリーステートメントを FileMaker Pro ファイル内で実行します。

SQLクエリステートメントという難しい言葉が登場しました。

ではSQLとはなんでしょうか?

SQLはデータベースを操作するための言語です。

SQLはテーブルで行を作成したり、検索をしたり、テーブルを作ることもできます。

FileMakerでは「検索する」、SELECTという命令文のみを扱うことができ、データベースから条件に合うレコードを取得することができます。

つまり、ExecuteSQL関数は、FileMakerデータベースのデータから特定の条件に合うものを取得する関数であるといえます。

どういったときに使うのか?

通常、検索を行う場合は、データを取得したい(見たい)テーブル(オカレンス)のレイアウトに移動して、検索を行います。

しかし、このExecuteSQL関数を使うと、どこのテーブルにいるかが、関係なくデータを取得することが可能になる画期的なものです。

あるデータを取得するためだけに、こんなスクリプトを組んだことはありませんか?

レイアウトを移動する→検索を実行→あるフィールドのデータを変数に格納→元のレイアウトに戻る

多人数で使用し、かつ大きなデータベースだとその動きが見えたりすることもあり、ちょっと不便な場合もあります。

これがExecuteSQL関数を使用することで、1行で済みます。

また、リレーションを減らすこともできます。

どこのテーブルにいるかに関係なくあるテーブルのデータを取得できるわけなので、先ほど出てきたスクリプトの機能として作成しているリレーションがある場合にはこのExecuteSQL関数で代用できる可能性があります。

ExecuteSQL関数の実際

では、実際のExecuteSQL関数の使い方を見ていきましょう。

ExecuteSQL( "SELECT フィールドA FROM テーブルA WHERE フィールドA < 30" ; "" ; "" )


第一引数はSQL文を渡します。

第二引数、第三引数はフィールド(第二)、テーブル(第三)が複数ある場合にどんな記号で区切るかを渡します。例えば、"¶"と記載すれば、改行されます。

この関数で難しいのはSQL文ではないかと思います。

SQLにはなかなかなじみのない方も多くいらっしゃると思うので、この関数をつかえていない方も非常に多くいるのではないかと思います。

この場合 SELECT の後には情報を取得したいフィールド名が来ます。

次にFROM の後にはそのフィールドがあるテーブルを記載します。

WHERE は取得するレコードの条件を入力します。この場合、フィールドAの値が30未満のものが抽出されることになります。

これが基本となります。

※フィールド名、テーブル名などが日本語やSQLの予約語の場合は文字を「\"」で囲む必要があります。「\"フィールドA\"」という具合にです。

やはりSQLにもともとなじみのない方が使いこなすには、Advanced版にあるデータビューアなどを使って式のテストをしていくことで慣れていくいかないと思います。


--PR------------------------
<a href="http://www.dlmarket.jp/products/detail/309796" target="_blank">【FileMaker Pro ワンテーママガジンVol1~ExecuteSQL関数を使いこなそう!~】</a>