DB フィルター: DB データのフィルタリング

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  SPS ファイルとデータベース > DB に対する SPS デザイン機能  >

DB フィルター: DB データのフィルタリング

データベース (DB) から編集不可能な一時 XML ファイルへインポートされたデータはフィルタリングすることができます。編集不可能な XML ファイルはレポートの生成に使用され、フィルタリングの効果は HTML と RTF のプレビューでのみ反映され、編集可能な一時 XML ファイルの内容を表示する Authentic プレビューには反映されないことに注意してください。DB フィルターは(ご使用の DB アプリケーションでサポートされている場合)DB 内部で作成することができるほか、SPS (SPS ファイル)内部で作成することができます。SPS では、XML スキーマにおけるトップレベルのデータテーブル(つまり DB コンポーネントの子であるデータテーブル)に対してそれぞれ1つの DB フィルターを作成することができます。DB フィルターが作成または修正されると、DB から得られたデータがその DB に対して生成された編集不可能な XML ファイルへ再ロードされます。DB フィルターを使用することで XML ファイルを望ましい大きさに抑え、レポート生成の処理をより効率的に行うことができます。

 

メモ:DB フィルターを使用することで、編集不可能な一時 XML ファイルへインポートされたデータを修正することができます。DB フィルターを伴う SPS を保存して、その SPS から XML ファイルを生成すると、DB フィルターの条件に従うかたちで生成された XML ファイルのフィルタリングが行われます。

 

DB フィルターの作成

 

1.デザイドキュメントまたはスキーマツリーにて、DB フィルターを作成するデータテーブル要素を選択します(要素の開始または終了タグをクリックするか、スキーマツリーに表示されている要素を選択してください)。
2.メニューオプションの データベース | DB フィルターの編集 を選択するか、ツールバーの ic_edit_db_filter アイコンをクリックしてください。以下に示されるダイアログが表示されます。

 

dlg_edit_db_filters

 

3.AND を追加または OR を追加ボタンをクリックします。空のフィルター条件が追加されます(以下のスクリーンショットを参照)。

 

dlg_edit_db_filters_2

 

4.条件に使用する値を入力します。条件は、(i) (コンボボックスから選択可能な)フィールド名、(ii) (コンボボックスから選択可能な)演算子、そして (iii) 直接入力される値により構成されます。条件作成の詳細については、以下にある条件で使用される表現 を参照ください。
5.別の条件を追加するには、条件の組み合わせに使用する論理演算子に従い、AND を追加または OR を追加ボタンをクリックして、新たな条件を作成します。論理演算子の詳細については DB フィルターにおける条件の順序替えを参照ください。

 

条件で使用される表現

DB フィルターの条件は、フィールド名、演算子、そして値により構成されます。選択可能なフィールド名は選択されたトップレベルのデータテーブル内にあるカラムで、フィールドの名前はコンボボックスにて選択することができます(上のスクリーンショットを参照)。使用することのできる演算子のリストを以下に示します:

 

=

等しい

<>

等しくない

<

指定された値未満

<=

指定された値以下

>

指定された値より大きい

>=

指定された値以上

LIKE

パターンに一致する

NOT LIKE

パターンに一致しない

IS NULL

空である

NOT NULL

空ではない

 

IS NULL または NOT NULL が選択されている場合、値フィールドが無効になります。の入力では引用句などのデリミタが使用されません。入力された値は対応する DB フィールドと同一のフォーマットでなければならず、そうでない場合評価結果は FALSE となります。例えば、Microsoft Access DB にある date データ型のフィールドに対して、StartDate=25/05/2004 という値の条件が与えられた場合、Microsoft Access DB の date データ型のフォーマットは YYYY-MM-DD となっているため、FALSE が返されることになります。

 

DB フィルターにてパラメーターを使用する

パラメーターの名前を表現の値として入力することもできます。これによりパラメーターの呼び出しが行われ、その値を条件の値として使用することができます。スタイルシートに対して既に宣言されたパラメーターと、将来宣言するパラメーターの両方を入力することができます。パラメーターが宣言されていない状態で値フィールドへの入力が行われた場合、「OK」 ボタンが選択不可能な状態になります。

 

同一の値を複数の条件で使用する、又はコマンドラインから値を渡すような場面でパラメーターを利用することができます(詳細については次を参照:StyleVision Server )。

 

表現の値としてパラメーターの名前を入力するには、値入力フィールドに $ を入力し、続けて(空白などをはさまずに)パラメーターの名前を入力します。パラメーターが既に宣言されている場合、エントリーが緑色で表示され、パラメーターがまだ定義されていない場合、エントリーが赤色で表示されます(次を参照:パラメータ)。

 

パラメータの DB フィルターの編集 ダイアログからパラメーターを宣言する

以下の操作により、パラメーターの編集ダイアログへアクセスしてパラメーターを宣言することができます:

 

1.データベースフィルターの編集ダイアログにてパラメーターボタンをクリックします。パラメーターの編集ダイアログが表示されます。

 

dlg_edit_params2

 

2.パラメーターの名前と値を対応するフィールドに入力します。

 

メニューオプションから「編集 | スタイルシートのパラメーター」コマンドを選択することでも、パラメーターの編集ダイアログへ直接アクセスしてパラメーターを宣言し、 DB パラメーターを編集することができます。

 

メモ: パラメーターの編集ダイアログには、スタイルシートに対して定義された全てのパラメーターが表示されます。 SPS にて宣言されていないパラメーターを使用するとエラーが返されますが、使用しないパラメーターを宣言してもエラーにはなりません。

 

データテーブルの要素に対して DB フィルターを作成すると、スキーマツリーにある要素がフィルターシンボルとともに表示されます。以下のスクリーンショットでは、Addresses 要素に対してフィルターシンボルが表示されています。

 

sym_tree_filter

 

DB フィルターにおける条件の順序替え

データベースフィルターの編集ダイアログでは、DB フィルターの論理構造と条件間の関係が視覚的に示されます。論理構造の各レベルは角括弧で示されます。隣同士に配置されている条件は AND 演算子(論理積)により組み合わせられ、2つの条件が OR により評価される場合、OR 演算子(論理和)が使用されます。ダイアログの表示により DB フィルターに使用される条件の論理構造を簡単に把握することができます。

 

dlg_edit_db_filters_move

 

上のスクリーンショットに示されている DB フィルターは、以下の様なテキストに書き直すことができます:

 

State=CA AND (City=Los Angeles OR City=San Diego OR (City=San Francisco AND カスタムerNr=25))

 

DB フィルターに示された各条件や条件セットの順序は変更することができます。以下の操作により条件や条件セットを移動することができます:

 

1.条件をクリックするか、レベルを表す角括弧をクリックして、条件やレベルを選択する。
2.ダイアログに表示された上矢印または下矢印をクリックする。

 

以下の点に注意してください:

 

移動方向に同レベルの条件がある場合、これら条件の位置が交換することになります。
条件のセット(同じ角括弧以下にある条件)の位置を同一条件内で変更することはできますが、レベルの深さは変更されません。
個々の条件は同一レベル内を移動します。隣にある条件が別のレベルに存在する場合、選択された条件は1つのレベルずつ移動することになります。

 

条件が選択された状態で削除ボタンをクリックすることで、DB フィルターにある条件を削除することができます。

 

DB フィルターの編集

DB フィルターを修正するには、メニューオプションから データベース | DB フィルターの編集 を選択します。データベースフィルターの編集ダイアログが表示され、表示された条件の編集、新たな条件の追加、条件の位置変更、または条件の削除を行うことができます。修正後には 「OK」 をクリックして完了します。DB のデータが StyleVision へ自動的に再ロードされ、DB フィルターへの変更が反映されます。

 

DB フィルターのクリア(削除)

DB フィルターをクリア(削除)するには、デザインウィンドウまたはスキーマツリーにて DB フィルターを削除する要素を選択し、メニューオプションから データベース |  DB フィルターをクリアする を選択します。フィルターが削除され、スキーマツリーに表示された要素名の隣に表示されていたフィルターシンボルが表示されなくなります。

 


(C) 2019 Altova GmbH