フォーミュラによるクエリを使用し、計算結果やデータ操作に基づいたレコード検索を行うことができます。作成する式は、各レコードに関してその結果が“True (真) ”または“False (偽) ”にならなければなりません。フォーミュラには、4Dのコマンドやランゲージのすべての関数、ならびに開発者が特に指定した任意のプロジェクトメソッドを使用することができます。
フォーミュラによるクエリコマンドは、次のような操作に関係するクエリを作成する際に役立ちます:
- 文字列に関する操作や評価の実行
- 日付演算の結果による検索
- 算術計算による検索
フォーミュラによるクエリエディターの使用例をいくつか紹介します:
- 次のフォーミュラは、電話番号フィールドの最後の7桁が“2524444”と等しいレコードを検索します:
Substring([Emp]Phone number;4;7)="2524444"
- 次のフォーミュラは、年度とは関係なく、本日生まれの人を検索します:
(Day of(Current date)=Day of([Emp]Birthdate))&(Month of(Current date)=Month of([Emp]Birthdate))
- 次のフォーミュラは、年間売上高を生計費で割り、その計算結果が1,000を超えるレコードを検索します:
([Stats]Annual Sales/[Stats]CostOfLiving)>1000
しかし、次のフォーミュラ:
[Stats]Annual Sales/[Stats]CostOfLiving
の場合は、“True (真) ”または“False (偽) ”ではなく、数値を返すため正しくありません。
フォー ミュラは1行の論理式でのみ作成することができます。つまり、キーボード上の Enter キー (Macintosh では Return キー) を押して、2行目を記述することはできません。しかし、命令文が長すぎる場合には、編集エリア内で行を折り返して表示します。1行を超えるフォーミュラを 使用する必要がある場合には、それをプロジェクトメソッドとして作成し、フォーミュラの中でこのメソッドを使用してください。
フォームによるクエリは標準のクエリエディターの中に統合されました。フォームによるクエリとは高度なクエリモードです。
フォームによるクエリを定義するためには、まず クエリエディター を表示させ、まずラインを追加ボタン
を Alt+ クリック(Windows) またはOption+ クリック(Mac OS) します。
注: 単一行のフォーミュラによるクエリを実行したい場合、デフォルトで追加されている最初の行を削除して下さい。
追加された行にはメニューが増えています:

: をクリックすると、フォームによるクエリで使用できる全てのデータベースのテーブルとフィールドの一覧の階層リストが表示されます。
: をクリックすると、フォームによるクエリで使用できる全ての演算子の一覧の階層リストが表示されます。

: をクリックすると、フォームによるクエリで使用できる全ての 4D ファンクションの一覧の階層リストが表示されます。SET ALLOWED METHODS を使用して、プロジェクトメソッドをこのリストに追加することもできます。

この新機能をを通じて、フォームによるクエリの条件を標準のクエリの条件と組み合わせて使用することが出来るようになりました:

また、こうしてこのダイアログボックスへと統合されたことにより、フォームによるクエリは以下の点において標準のクエリと同じ機能を持つようになりました:
- セレクションのアクションのメニュー(セレクションのアクションメニュー)を使用してクエリアクションを選択できるようになりました。
- 直前の検索(最近の検索メニュー)の一覧の中から実行済みのクエリを再度選択できるようになりました。
- ファイルメニューを通して保存や読み込みができるようになりました。(編集メニュー を参照して下さい)