特集 ニュース コラム Plug-in・カスタム関数 関連製品・サービス 書籍
活用事例 コミュニティ・リンク 人材募集
 

カスタム関数を作ってみよう

カスタム関数って、なんか便利そうだけど、よくわからない。と思う前にまず作ってみましょう。

FileMaker Developer 7から新しく登場した機能に「カスタム関数」があります。
「カスタム関数ユーティリティ」を使うと、データベース内の任意の場所で再利用できる関数を自分でつくることができます。これまで、システムの中で何度も同じような計算式を再定義することがあったかもしれませんが、カスタム関数を使えば、他のフィールドで使ったり、他のスクリプトで使ったり、いちいち式を定義し直す必要はありません。
独自の関数をつくってみましょう。

例1:cmをインチに変換する

1インチは2.54cmです。ということは、cmで入力された値を、2.54で割ればいいわけですが

 inch(cmフィールド) 

と指定するだけで計算結果がかえってくるカスタム関数をつくってみましょう。

  • 「ファイル」メニューの「定義」から「カスタム関数」を選択します。
  • 「カスタム関数の定義」ウィンドウが開いたら「新規」をクリックします。
    カスタム関数の編集画面
  • 関数に名前をつけます。(ここでは「inch」にしましょう)
  • 関数の引数を指定します。(ここでは「cm」にしましょう)
    これで、カスタム関数作成の準備ができました。

    あとは計算式を作るだけです。ちなみに今回計算させるのはこれだけ。
 cm/2.54 

あまり端数が出てもいやなので、小数点2桁まで表示させるようにします。

 Round(cm/2.54;2)


これでできあがりです。
あとは、完全アクセス権を持つユーザにのみ実行させるか、誰でも使えるようにするかの設定をしたら「OK」をクリックしてください。さて、関数を実際に使ってみましょう。

用意するフィールド

cmフィールド(数字)
inchフィールド(計算)

inchフィールドに計算式を設定します。
関数の種別リストから「カスタム関数」を探してみてください。今作成したinch関数が表示されていますね。

 inch(cmフィールド)

と設定して、ブラウズモードで計算結果を見てみましょう。ちゃんと計算できていますね。

カスタム関数は、同じデータベースの中でならどのレイアウト、テーブル内ででも使うことができます。
何度も同じ計算式を作成してうんざりしていた方は、ぜひ試してみましょう。
さて、もう少し難しい関数をつくってみましょうか。


例2:時差から現在時刻を計算する

次に、時差を何時間、と指定すると東京の時刻から計算して現地時刻を表示する関数をつくってみましょう。

関数名:timecalc
引数:now,difference(now=現在時刻,
difference=時差)

関数の設定
now+Time(difference;0;0)

これでできあがりです。
「都市名」フィールド(テキスト)
「時差」フィールド(数字)
「現在時刻」フィールド(時刻)を用意して、いくつかレコ−ドを入力しておきます。

都市名 時差
東京 0
ロンドン -9
ニューヨーク -14
ロサンゼルス -17

 
「現在時刻」フィールドにフィールド設定を使って以下のデータを設定してみましょう。

 timecalc(Get(時刻);時差)


時差を計算して表示したところ


「現在時刻」フィールドには、それぞれの時差を引いた時間が表示されます。つまり現地の現在時刻がわかります。
計算結果を定期的に更新できるようにしてあげると、世界時計になりますね!

[2004/11/15]
[有限会社ジェネコム 村上ゆりか]


FMPro.jpについて |  利用規約 |  ポリシー |  お問い合わせ