Filterコマンド

 Filterコマンドは、WriteReportコマンドと組み合わせて使う、サブコマンドです。

Filterコマンドは、「Filterお名前=本川一郎」のように指定し、SQL文のWhere句にANDで追加されます。
演算子は、=の他>=,<=Likeが使われます。フィールドのデータ型によって使い方が違いますが、以下具体例を示します。

書式
・文字型の時
  Filterお名前Like*本*
・数字の時
  Filter本数>=2
・日付の時
  Filter日付>=2000/6/2

Filterのフィールド名は、XCuteのテーブルに表示されるフィールド名(SQL文で別名を定義したなら別名)を使います。
演算子は、Likeと=,>,<とこれらの組み合わせに限られます。
XCuteは、内部的に、別名を本当の名前に置き換えセパレータやスペースを付けたりして整形したものを、SQL文のWhere句にANDで追加します。
なお、=のFilterコマンドは例外的にブラウザからのクエリーストリングで指定できますが、フィールド名などデータベースの構造が知れてしまうので避けてください。
下記のように、Excelのシート関数(IFやTEXT)を使い計算式でFilterを指定するのがXCuteの流儀です。

=IF(R11C6="","GOTO NEXT","Filter登録日>=" & TEXT(R11C6,"YYYY/MM/DD"))

上は、R11C6が空なら次へ、それ以外ではFilter…を実行です。
また、Filterは、1つのレポートに32個まで指定できます。
子テーブルにFilterを掛ける時は、Filterテーブル名!フィールド名..  とします。
なお、この()なしのFilterコマンドに使うフィールド名は、XCuteのテーブルで使われ、XCuteから見えていることが必要です。もし、隠れたフィールド名を使いたい場合は、下記のFilter()の書式を使います。


Filter(SQL文のWhere句)

Filter()の書式では、SQL文のWhere句に( )内の文字列を何ら整形せずそのままAND追加します。
そのままWhere文に追加するため、( )の中は、フィールド名はASなど指定した別名を使わず本当の名前を使い、セパレータやスペースで整形してください。
ORのWhere句を使いたい場合は、Filter()の書式を使うか、CHG_SQLコマンドを使います。

書式

Filter((お名前 Like '*本*') OR (お名前 Like '*川*'))

NULLを使う場合も、Filter()の書式で実現できます。
Filter(日付 IS NULL)

子テーブルにFilterを掛ける時は、Filterテーブル名!(フィールド名.  )とします。


適用位置
ひな型シート R2C8以降のセル、R3C8以降のセル

参照
 ○
ひな型シート2行目
 ○ひな型シート3行目
 ○WriteReportコマンド
 ○特殊文字とセキュリティ