タスクのデータビューに範囲を定義するには

デフォルトでは、Magic xpaは メインソース のすべてのレコードを表示します。例えば、 APG を使用してプログラムを作成した場合、テーブルのすべてのレコードが表示されます。

しかし、通常はすべてのレコードを表示することはありません。例えば、削除フラグが設定されたレコードを表示しないようにしたり、代理人による販売内容のみ表示させるようにすることができます。また、1つのユニークなレコードを検索する場合もあります。

データビューでレコード数を制限するには、いくつかの方法があります。[範囲]カラムに直接範囲条件を設定する便利な方法もありますが、このようなオプションのほとんどは、[範囲]ウィンドウ( タスク→範囲/位置付 、または Ctrl+R )にあります。

範囲設定についての詳細な方法を以下で説明します。

範囲の最大/最小を使用する

Screen20-13.gif

範囲指定の1番目の方法は、最大/最小の指定です。これは、最も簡単でよく利用される方法です。この場合、上限と下限のフィルタを指定し、指定された範囲内のレコードのみに絞ることを可能にします。文字型のカラムの場合、いくつかのマスク文字が指定できます。例えば、検索文字列の後に「*」が付加されている場合、移行の文字列を無視するように検索できます。

 このような範囲指定方法は、一般的に、1種類(同じ状態、同じ国、同じ親レコードID)のレコードで絞り込んだり、最小と最大を同じ値に指定することで1つの特定のレコードを絞り込むために使用されます。

Screen20-14.gif

この例では、プログラムに渡された文字列で始まっているすべてのレコードを検索しています。 "The L" という文字列で始まるレコードが存在する場合、結果として表示されるレコードには、映画「The Load of the Rings」の全てのレコードが含まれています。

しかし、この方法では、文字列の中に存在するテキストを検索したり、より複雑な条件で検索することはできません。このような場合は、範囲式を使用する必要があります。

範囲指定を異なる場所から確認する

便宜上、範囲の最小/最大指定は、いくつか異なる場所で参照することができます。ここには、上記で設定された範囲条件をそれぞれの場所で表示させています。

Screen20-15.gif

データビュー内に表示される範囲カラム

Screen20-16.gif

範囲ウィンドウ(Ctrl+R)で同じ範囲条件が指定されています。

Screen20-17.gif

カラム特性(Alt+Enter)での範囲指定

どのオプションを使用しても構いません。どこで指定しても同じ動作になります。

範囲式を使用する

Screen20-18.gif

範囲式オプションを使用することで、より柔軟な範囲設定を行うことができます。この方法では、任意の式を入力することができ、式がTrueに評価された場合、レコードは選択されます。この例では、指定された値が文字列のどこに存在していても、Trueが返るような式を指定しています。

Screen20-19.gif

上記の例には、[範囲式]特性( 範囲/位置付→式タブ )に入力された式が表示されています。パラメータが空白の場合、式は常にTrueを返すため、すべてのレコードが表示されます。空白でない場合、指定された文字列が現在のレコードの文字列内に存在するかどうかをチェックするために、 InStr() 関数を使用しています。存在している場合、 InStr() 関数は正の数値(0より大きい数値)を返すため、該当するレコードはビューに含められます。

SQL Where句を使用する

Screen20-20.gif

SQLテーブルを使用している場合、通常の範囲指定(最大/最小)オプションは実行時にSQLステートメントに変換されます。しかし、SQLコードを[SQL Where]タブの[DB SQL]に入力することもできます。この方法の不利な点は、SQLコードが使用するDBMSに依存する場合があるということです。このため、DBMSを切り換えて使用する場合、移植性がなくなる可能性が発生します。

その代わりに Magic SQL式 を入力することができます。この場合、実行時に使用するDBMS用のSQLコードに変換されます。

関連プログラム:

オンライン/リッチクライアントサンプル(プログラム DV06/RDV06)