2015年10月28日水曜日

FileMaker(ファイルメーカー)で複数のキーワードで検索してみよう

Google(グーグル)などのWebサイトの検索ではおなじみですが、

「ラーメン 秋葉原」や「本屋 神保町」という風に複数のキーワードを組み合わせて検索するというのはよくあります。

Web検索では無意識に行っていますが、FileMakerでもやりたいと思ったことはないでしょうか?

今回は複数のキーワードを検索する方法を紹介します。

ちなみに「ラーメン or 秋葉原」ではなく「ラーメン and 秋葉原」の検索になります。

あるフィールドから「ラーメン」も「秋葉原」も両方が含まれるレコードを検索するということになります。

概要

・まず対象となるフィールドのどこかのフィールドに「ラーメン」が含まれるレコードを検索します。

・次にその対象レコードから、どこかのフィールドに「秋葉原」が含まれるレコードを絞り込みます。

・例ではキーワードが二つでしたが、それ以上にもフレキシブルに対応します。

・3つ以上のキーワードはLoopでさらに絞り込んでいきます。

設定

・フィールド「商品名」「メーカー」「コメント」の3つ(この3つのフィールドのどれかにキーワードが含まれていることものを検索する)

・「g_検索ワード」というグローバル格納のフィールドにキーワードを入力するとスクリプトが起動し、検索を行う。

スクリプト

スクリプトはこの図のようになります。

・(2行目)スペース区切りで入力された検索ワードを改行区切りにします。半角でも全角でも大丈夫なようにします。

・(3行目)ワード数を調べます。

・(4行目)最初のワードを取得します。

・(5~11行目)最初のワードが対象のフィールドのどこかに含まれているレコードを検索します。

・(12~14行目)ワードが1つだけだった場合(ない場合も)は、スクリプトを終了させます。

・(15行目)2つ目のワードであることを変数に格納します。

・(17行目)2つ目のワードを取得します。

・(18~24行目)1つ目と同じようにどこかに含まれているかを設定し、対象レコードの絞り込みを行います。

・(25行目)現在の絞り込み回数がワード数実行されたら、ループ(Loop)を抜けます。

・これをワード数分繰り返します。

実行例



このような4つのレコードが場合です。

上部にある窓が検索ワードを入力する部分です。キーワードをスペース区切りで入力し、「Enter」や「確定」させるとスクリプトが実行されます。

「usbメモリ」「東芝」「16」と入力されています。


実行すると、このように「usbメモリ」「東芝」「16」がすべて含まれる1レコードだけが結果に表示されました。

サンプルダウンロード

今回紹介した内容のサンプルファイルを用意しましたこちらからダウンロードできます。

2015年10月19日月曜日

え? クライアントOS(Windows)でFileMaker Serverが使えない?

FileMaker 14シリーズになり、もしかしたら気づかれた方も多くいらっしゃることと思います。

FileMaker Server14では、WindowsのクライアントOSがサポートされなくなりました。

「クライアントOSで動くことがFileMaker Serverの魅力の一つだったのに…」などと少し残念な気持ちにもなりました。

しかし、初めにFileMaker Serverに触れたとき、クライアントOSでも動くのか! と少し驚いたことを考えるとなるべくしてなったことなのかなと思うこともあります。

ただし、サポートされなくなっただけで現状はインストール可能なようです。FileMaker Server14v1ですが、Windows7で動いているので、実際にはまだ大丈夫なようです。

Windows10でどうか?

結論から言いますと、現状は難しそうです。

先日ためしにインストールを試みましたが、Application Request Routing(ARR)のインストール中に止まってしまいます。

もしくはエラーが出て「インターネットに繋がっていない」旨のメッセージが出てインストールできませんでした。

手動でインストールする手順がFileMaker社のサイトに載っていますが、Windows10のIIS(インターネットインフォメーションサービス)のバージョンが違うのでできません。

IIS10というバージョンになるので、それ用のものを探そうとしたところで断念。

Windows10にしなければ大丈夫だ…ということで。

FileMaker Serverが新しいWindows Serverに対応するころにいけるようになるのではと推測しています。

WindowsのクライアントOSのテスト機として用意しやすいので、インストールできないようにしないでください…ね?(期待を込めて)。