Skip Navigation
Expand
レポートでの論理式機能の使用
Answer ID 7427   |   Last Review Date 06/30/2020

論理式機能をレポートでどのように使用しますか。

環境:

分析、レポートフィルターの論理式
Oracle B2C Service

解決策:

論理式機能を使用すると、レポートを定義するときに非常に高い柔軟性が得られます。デフォルトでは、レポートに複数のフィルタが含まれていれば、すべてのフィルタがAND (&)ブール結合子で結合されます。ただし、フィルタ間またはフィルタ・グループ間でも同様にOR ( | )結合を使用するように論理式をカスタマイズできます。

注意:論理式は、ルールセットの構成時にも使用されます。ルールでの論理式の使用について詳しくは、Answer ID 84: OR Criteria with Business Rulesを参照してください。

レポートに多数のフィルタを追加すると、論理式によってフィルタがAND結合子で自動的に結合されます。

1例:ANDコネクターで結合されたすべてのフィルター

したがって、レポートで使用される論理式をカスタマイズするには、最初のステップとしてORノードを追加します。次に、OR結合で結合されるフィルタをORノードにドラッグ・アンド・ドロップします。

2例:ORノードで結合されたすべてのフィルター

さらに複雑な式が必要な場合は、ORノード内にANDサブノードも追加できます。

3例:ORノードとANDサブノード

式にノードを追加しているときは、ノード内の要素がORまたはANDで結合される挿入コンポーネントが追加されています。つまり、ORノードを追加することは、論理式に( __ | __ )または( __ OR __ )を追加することに類似しています。そのため、ノードの下には2つ以上のコンポーネントがリストされている必要があります。フィルタをノードにドラッグ・アンド・ドロップすることも、サブノードを追加してからフィルタをサブノードにドラッグすることもできます。

4例:ANDノードとORノードの混合

Edit Text Definition」リンクを使用すると、フィルタがグループ化されている方法およびフィルタ間の演算子を再確認できます。これにより、式の構成を確認できます。

「論理式の編集」ウィンドウから、レポートのフィルタを追加、編集、または削除できます。さらに、ノードをクリックし、そのノードを削除できます。

注意:ノードを削除すると、フィルタおよびサブノードもすべて削除されます。したがって、フィルタを削除せずにノードを削除するには、最初にフィルタを高いレベル(最上位のANDノードなど)にドラッグしてから、ノードを削除する必要があります。

レポートで使用される論理式を変更するには、次の手順を使用します。

  1. 編集するレポートを開きます。
  2. 「ホーム」タブの「データ・セット」セクションから、「フィルタ」をクリックします。

    「論理式」ウィンドウで、ANDノードの下にフィルタがリストされ、すべてがAND結合を使用して結合されていることを示しています。
  3. ORノードを追加するには、「ORノードの追加」をクリックします。
  4. フィルタをORノードにドラッグ・アンド・ドロップします。
  5. 「テキスト定義の参照」をクリックして、論理式を再確認します。
  6. 完了したら、「OK」をクリックして「論理式の編集」ウィンドウを閉じ、レポートを保存します。

注意:フィルタをすべてOR結合子で結合する場合は、ORノードを追加してから、すべてのフィルタをORノードにドラッグ・アンド・ドロップします。



括弧の使用

論理式の文字列内では、括弧の使用が非常に重要です。括弧が含まれていない場合は、「論理式」ボックスにリストされた順序で基準が評価されます。たとえば、式Aと式Bの間には、次のように明確な差異があります。

     式A:1 & (2 | 3)
     式B:1 & 2 | 3

弧がない場合は、基準が一覧表示された順序で厳密に比較が行われます。その結果、式1 & 2 | 3は(1 & 2) | 3に相当します。

  • 式Aでは、基準1を満たし、かつ基準2または3を満たす場合に項目が一致します。どのような場合でも、レコードが一致するには基準1を満たす必要があります。
  • 式Bでは、基準1および基準2を満たすか、または基準3を満たす場合に項目が一致します。基準3を満たせば、基準1または基準2を満たすかどうかは問題になりません。基準1および基準2を満たせば、基準3を満たすかどうかは問題になりません。

Available Languages for this Answer:

Notify Me
The page will refresh upon submission. Any pending input will be lost.