FileMaker API for PHPの使い方<応用編>として、FileMakerデータベースの構造情報を取得するクラス「FileMaker」「FileMaker_Layout」を紹介してきた。今回からフィールドのタイプや入力値の自動化・入力値の制限といった「フィールド情報」を一括で取得するFileMaker_Fieldクラスについて取りあげよう。まずは概要からだ。
FileMaker_Fieldで取得できる情報
FileMakerの特徴として、GUIで簡単にデータベースの設計ができることが挙げられる。そのなかでもフィールド定義に関しては単純に"テキスト"や"数字"といった「タイプ」(型に相当)の設定だけではなく、レコード作成・確定時の各種情報やシリアル値やルックアップ値・計算値を代入する「入力値の自動化」、前述のタイプや最大文字数、計算式などで入力値のバリデートをおこなう「入力値の制限」など、さまざまなことが簡単に実施できるようになっている。FileMakerデベロッパはフィールドオプションを定義するだけで、バリデート処理や各種シリアル値・タイムスタンプ取得のロジックを実装する必要がなくなる。開発効率アップには欠かせない機能のひとつと言えるだろう。
これらフィールドのタイプやオプション情報を取得するのに最適なクラスがFileMaker_Fieldだ。同クラスに用意されている機能をまとめた表を示す。
取得できる情報 | メソッド名 |
---|---|
入力値の制限情報(一部) | describeLocalValidationRules(), describeValidationRule(), describeValidationRules(), getLocalValidationRules(), getValidationMask(), getValidationRules(), hasValidationRule(), validate() |
レイアウト情報 | getLayout() |
フィールド名 | getName() |
繰り返し数 | getRepetitionCount() |
フィールドタイプ | getResult(), getType() |
フィールドコントロールスタイル/表示形式 | getStyleType() |
値一覧情報 | getValueList() |
入力値の自動化が設定されているか否か | isAutoEntered() |
グローバルフィールドか否か | isGlobal() |
データベースの管理>フィールド定義>各種オプションで指定できる内容のほか、レイアウト上で設定する「値一覧」や「コントロールスタイルの表示形式」といった情報までを取得することができる。FileMaker_Fieldコンストラクタの引数にはFileMaker_Layoutオブジェクトが要求されることから、FileMaker_Layoutクラスでいったん目的のレイアウトオブジェクトを取得してから利用したほうが使いやすいだろう。
FileMaker_Fieldクラスで取得できる情報の一部。フィールドオプションのほか、レイアウトに配置したフィールドの表示形式(編集ボックス, ドロップダウンリスト, ポップアップメニュー, チェックボックスセット, ラジオボタンセット, ドロップダウンカレンダー)も取得できる |
このほか「入力値の制限情報」取得のための機能がおおく用意されているのも特徴だ。今後、get○○といった取りあつう情報がすくない・使い方が簡単なメソッドから紹介し、「入力値の制限」の使い方、画面生成の自動化について取りあげていこう。Webアプリ側でFileMaker_LayoutクラスやFileMaker_Fieldクラスで提供されている機能を有効に使えば
- データベースの定義はFileMakerネイティブのGUIで短時間構築。テーブル・フィールド定義の変更も柔軟に対応可
- WebアプリのUIはFileMaker API for PHPをベースに動的生成。レイアウト情報や値一覧をFileMaker_Layoutクラス、フィールド情報やバリデートをFileMaker_Fieldクラスで取得する
- 帳票といったWebアプリ上で実現するにはコストがかかりやすい箇所はFileMaker側で実現
といったことも可能になる。FX.phpとFileMaker API for PHP、そしてFileMaker自身のメリットをそれぞれ組み合わせて、効率よく開発をおこなっていきたいところだ。