ヘッダーをスキップ
Oracle Database Application Expressアドバンスト・チュートリアル
リリース3.0
E05693-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

3 パラメータ付きレポートの作成方法

Oracle Application Expressアプリケーションでは、レポートとは、SQL問合せの結果を書式化したものです。レポートの作成には、3つの方法があります。

このチュートリアルでは、結果がフォーム入力に依存するレポート(パラメータ付きレポート)の作成方法について説明します。この演習では、アプリケーション内のフォーム・アイテムの値を参照するSQL問合せに基づくレポート・リージョンを作成します。

チュートリアルを始める前に、必要なサンプル・データベース・オブジェクトにアクセスできるように、OEHR Sample Objectsアプリケーションをインポートしてインストールする必要があります。詳細は、「サンプル・オブジェクトのロード方法の概要」を参照してください。

内容は次のとおりです。

フォーム入力を利用するサンプル・レポート

図3-1に、レポートの結果がユーザー入力に基づくフォームの例を示します。この例では、ユーザーは「Search Employee」フィールドにEmployee IDを入力するか、2つの選択リストから選択を行ってフォームに移入します。このようなレポートをアプリケーション・ビルダーで作成する最も簡単な方法は、SQL問合せに基づくレポート・リージョンを定義することです。

図3-1 サンプル・レポート

図3-1の説明が続きます。
「図3-1 サンプル・レポート」の説明

アプリケーションの作成

最初に、「アプリケーションの作成」ウィザードを使用してアプリケーションを作成する必要があります。

「アプリケーションの作成」ウィザードでアプリケーションを作成するには、次のステップを実行します。

  1. 「作業領域」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。

    「アプリケーション・ビルダー」ホームページが表示されます。

  2. 作成」をクリックします。

  3. アプリケーションの作成」を選択して「次へ」をクリックします。

  4. 「名前」で、次の各項目を指定します。

    1. 「名前」に、Parameterized Reportと入力します。

    2. 「アプリケーション」で、デフォルトを受け入れます。

    3. 「アプリケーションの作成」で、「最初から」を選択します。

    4. 「スキーマ」で、OEHR Sample Objectsをインストールしたスキーマを選択します。

    5. 次へ」をクリックします。

      次に、空白ページを追加します。

  5. 「追加」ページで、次の各項目を指定します。

    1. 「ページ・タイプの選択」で、「空白」を選択します。

    2. 「ページ名」に、Employeesと入力します。

    3. ページの追加」をクリックします。

      ページ上部のリストに、新しいページが表示されます。

    4. 次へ」をクリックします。

  6. 「タブ」で、デフォルトの「1レベルのタブ」を受け入れて「次へ」をクリックします。

  7. 「別のアプリケーションから共有コンポーネントのコピー」で、デフォルトの「いいえ」を受け入れて「次へ」をクリックします。

  8. 「属性」で、「認証スキーム」、「言語」、「ユーザー言語プリファレンスの派生元」にデフォルトを受け入れて、「次へ」をクリックします。

  9. 「ユーザー・インタフェース」で、「テーマ18」を選択して「次へ」をクリックします。

    テーマは、アプリケーションのレイアウトおよびスタイルの定義に使用できるテンプレート集です。テーマは随時変更できます。

  10. 選択内容を確認して、「作成」をクリックします。

    「アプリケーション」ホームページが表示されます。


参照:

『Oracle Database Application Expressユーザーズ・ガイド』の「テーマの管理」

リージョンの作成

次に、リージョンを作成する必要があります。リージョンはページ上の領域で、コンテンツのコンテナとして機能します。この演習では、検索条件となるアイテムを含む検索リージョンと、結果レポートを表示する問合せリージョンの2つのリージョンを作成する必要があります。

この項の内容は次のとおりです。

検索リージョンの作成

検索リージョンを作成するには、次のステップを実行します。

  1. 「アプリケーション」ホームページで、「1 - Employees」をクリックします。

    ページ1のページ定義が表示されます。

  2. 図3-2に示すように、「リージョン」で、「作成」アイコンをクリックします。

    図3-2 「作成」アイコン

    図3-2の説明が続きます。
    「図3-2 「作成」アイコン」の説明

  3. 「リージョン」で、次のステップを実行します。

    1. 「このページに追加するリージョン・タイプを指定」で、デフォルトの「HTML」を受け入れ、「次へ」をクリックします。

    2. 「作成するHTMLリージョン・コンテナのタイプの選択」で、デフォルトの「HTML」を受け入れ、「次へ」をクリックします。

  4. 「表示属性」で、次の各項目を指定します。

    1. 「タイトル」に、検索と入力します。

    2. 残りのデフォルト値を受け入れます。

    3. 次へ」をクリックします。

  5. リージョンの作成」をクリックします。

    ページ1のページ定義が表示されます。ページ上部に「リージョンが作成されました。」という確認メッセージが表示されます。

問合せリージョンの作成

次に、SQL問合せに基づくレポート・リージョンを作成する必要があります。


参照:

『Oracle Database Application Expressユーザーズ・ガイド』の「リージョンの理解」

SQL問合せに基づくレポート・リージョンを作成するには、次のステップを実行します。

  1. 「リージョン」で、「作成」アイコンをクリックします。

  2. 「リージョン」で、「レポート」を選択して「次へ」をクリックします。

  3. 「レポート実装」で、「SQLレポート」を選択して「次へ」をクリックします。

  4. 「表示属性」で、次のステップを実行します。

    1. 「タイトル」に、次のように入力します(必ず最後にピリオドを付けてください)。

      Employees &P1_TEXT.
      
      

      &P1_TEXTは、リージョンのタイトルを決定する置換文字列です。このアイテムは次の項で作成します。

    2. 残りのデフォルト値を受け入れて「次へ」をクリックします。

  5. 次のSQL問合せを入力します。

    SELECT
       "OEHR_EMPLOYEES"."EMPLOYEE_ID" "EMPLOYEE_ID",
       "OEHR_EMPLOYEES"."FIRST_NAME" "FIRST_NAME",
       "OEHR_EMPLOYEES"."LAST_NAME" "LAST_NAME",
       "OEHR_EMPLOYEES"."EMAIL" "EMAIL",
       "OEHR_EMPLOYEES"."PHONE_NUMBER" "PHONE_NUMBER",
       "OEHR_EMPLOYEES"."HIRE_DATE" "HIRE_DATE",
       "OEHR_EMPLOYEES"."JOB_ID" "JOB_ID",
       "OEHR_EMPLOYEES"."SALARY" "SALARY",
       "OEHR_EMPLOYEES"."COMMISSION_PCT" "COMMISSION_PCT",
       "OEHR_EMPLOYEES"."MANAGER_ID" "MANAGER_ID",
       "OEHR_EMPLOYEES"."DEPARTMENT_ID" "DEPARTMENT_ID"
    FROM
       "#OWNER#"."OEHR_EMPLOYEES" "OEHR_EMPLOYEES"
    WHERE
         (lower(first_name) like '%' || lower(:P1_NAME) || '%' OR
          lower(last_name) like '%' || lower(:P1_NAME) || '%')
     AND department_id = decode(:P1_DEPT,'%null%',department_id,:P1_DEPT)
     AND manager_id = decode(:P1_MGR,'%null%',manager_id,:P1_MGR)
    
    

    検索条件およびデータベースからの値はいずれも、WHERE句で小文字に変換されます。これにより、大/小文字を区別せずに、名字および名前の検索が行われます。

  6. リージョンの作成」をクリックします。

    ページ1のページ定義が表示されます。ページ上部に確認メッセージが表示されます。

フォーム・アイテムの追加

アイテムは、HTMLリージョンの一部です。アイテムは、テキスト・フィールド、テキスト領域、パスワード、選択リスト、チェック・ボックスなどを示します。前述のSQL問合せでは、P1_NAMEP1_DEPTP1_MGRおよびP1_TEXTの各アイテムが参照されます。次に、これらのアイテムを作成する必要があります。

この項の内容は次のとおりです。


参照:

『Oracle Database Application Expressユーザーズ・ガイド』の「ページ・レベル・アイテムの理解」

「Search Employee」テキスト・フィールドの作成

テキスト・フィールドP1_NAMEを作成するには、次のステップを実行します。

  1. 「アイテム」で、「作成」アイコンをクリックします。

  2. 「アイテム・タイプ」で、「テキスト」を選択して「次へ」をクリックします。

  3. 「テキスト制御の表示タイプ」で、「テキスト・フィールド」を選択して「次へ」をクリックします。

  4. 「表示位置および名前」で、次のステップを実行します。

    1. 「アイテム名」に、P1_NAMEと入力します。

    2. 「順序」で、デフォルトを受け入れます。

    3. 「リージョン」で、「検索」を選択します。

    4. 次へ」をクリックします。

  5. 「アイテム属性」で、次のステップを実行します。

    1. 「ラベル」に、Search Employeeと入力します。

    2. デフォルトを受け入れます。

    3. 次へ」をクリックします。

  6. デフォルトを受け入れて「次へ」をクリックします。

  7. アイテムの作成」をクリックします。

非表示テキスト・フィールドの作成

次に、P1_TEXTという名前の非表示テキスト・フィールドを作成します。P1_TEXTの値は、表示するリージョン・タイトルのベースとして使用されます。

非表示テキスト・フィールドP1_TEXTを作成するには、次のステップを実行します。

  1. 「アイテム」で、「作成」アイコンをクリックします。

  2. 「アイテム・タイプ」で、「非表示」を選択して「次へ」をクリックします。

  3. 「表示位置および名前」で、次のステップを実行します。

    1. 「アイテム名」に、P1_TEXTと入力します。

    2. 「順序」で、デフォルトを受け入れます。

    3. 「リージョン」で、「Employees &P1_TEXT」を選択します。

    4. 次へ」をクリックします。

  4. 残りのデフォルトを受け入れて「次へ」をクリックします。

  5. アイテムの作成」をクリックします。

「Department」および「Manager」選択リストの作成

次に、P1_DEPTP1_MGRという名前の2つのアイテムを作成する必要があります。これらのアイテムは選択リストとして表示され、2つの名前付き(または共有)LOVに基づくものです。

LOVは、ページ・アイテムの表示に使用される静的または動的な値のセットです。これらのアイテムを作成するには、最初に2つの動的LOVを定義し、次にアイテムP1_DEPTおよびP1_MGRを作成します。

この項の内容は次のとおりです。


参照:

『Oracle Database Application Expressユーザーズ・ガイド』の「LOVの作成」

Department用の名前付きLOVの作成

Department用の名前付きLOVを作成するには、次のステップを実行します。

  1. 「LOV」で、「作成」アイコンをクリックします。

  2. 「ソース」で、デフォルトの「最初から」を受け入れて「次へ」をクリックします。

  3. 「名前およびタイプ」で、次のステップを実行します。

    1. 「名前」に、DEPARTMENTと入力します。

    2. 「タイプ」で、「動的」を選択します。

    3. 次へ」をクリックします。

  4. 「問合せまたは静的値」で、既存のテキストを次の内容に置き換えます。

    SELECT department_name,department_id FROM oehr_departments
    
    
  5. LOVの作成」をクリックします。

    ページ定義が表示されます。

Manager用の名前付きLOVの作成

Manager用の名前付きLOVを作成するには、次のステップを実行します。

  1. 「LOV」で、「作成」アイコンをクリックします。

  2. 「ソース」で、デフォルトの「最初から」を受け入れて「次へ」をクリックします。

  3. 「名前およびタイプ」で、次のステップを実行します。

    1. 「名前」に、MANAGERと入力します。

    2. 「タイプ」で、「動的」を選択します。

    3. 次へ」をクリックします。

  4. 「問合せまたは静的値」で、既存のテキストを次の内容に置き換えます。

    SELECT y.first_name || ' ' || y.last_name d, y.employee_id r
    FROM oehr_employees y
    WHERE y.employee_id IN ( SELECT x.manager_id FROM oehr_employees x)
    
    
  5. LOVの作成」をクリックします。

    ページ定義が表示されます。

P1_DEPTという名前のアイテムの作成

P1_DEPTという名前のアイテムを作成するには、次のステップを実行します。

  1. 「アイテム」で、「作成」アイコンをクリックします。

  2. 「アイテム・タイプ」で、「選択リスト」を選択して「次へ」をクリックします。

  3. 「リスト制御タイプの選択」で、「選択リスト」を選択して「次へ」をクリックします。

  4. 「表示位置および名前」で、次のステップを実行します。

    1. 「アイテム名」に、P1_DEPTと入力します。

    2. 「順序」で、デフォルトを受け入れます。

    3. 「リージョン」で、「検索」を選択します。

    4. 次へ」をクリックします。

  5. 「LOV」で、次のステップを実行します。

    1. 「名前付きLOV」で、「DEPARTMENT」を選択します。

    2. 「NULLテキスト」に、次の内容を入力します。

      - All -
      
      
    3. 残りのデフォルトを受け入れて「次へ」をクリックします。

  6. 「アイテム属性」で、次のステップを実行します。

    1. 「ラベル」に、Departmentと入力します。

    2. 残りのデフォルトを受け入れて「次へ」をクリックします。

  7. アイテムの作成」をクリックします。

P1_MGRという名前のアイテムの作成

P1_MGRという名前のアイテムを作成するには、次のステップを実行します。

  1. 「アイテム」で、「作成」アイコンをクリックします。

  2. 「アイテム・タイプ」で、「選択リスト」を選択して「次へ」をクリックします。

  3. 「リスト制御タイプの選択」で、「選択リスト」を選択して「次へ」をクリックします。

  4. 「表示位置および名前」で、次のステップを実行します。

    1. 「アイテム名」に、P1_MGRと入力します。

    2. 「順序」で、デフォルトを受け入れます。

    3. 「リージョン」で、「検索」を選択します。

    4. 次へ」をクリックします。

  5. 「LOV」で、次のステップを実行します。

    1. 「名前付きLOV」で、「MANAGER」を選択します。

    2. 「NULLテキスト」に、次の内容を入力します。

      - All -
      
      
    3. 残りのデフォルトを受け入れて「次へ」をクリックします。

  6. 「アイテム属性」で、次のステップを実行します。

    1. 「ラベル」に、Managerと入力します。

    2. 残りのデフォルトを受け入れて「次へ」をクリックします。

  7. アイテムの作成」をクリックします。

ページを送信するボタンの作成

ページの送信は、なぜ必要なのでしょうか。ユーザーが検索条件を入力したら、その検索条件で問合せを再実行するために、ページを送信することが必要になります。ページを送信するために、ボタンを追加します。

ページを送信するボタンを追加するには、次のステップを実行します。

  1. 「ボタン」で、「作成」アイコンをクリックします。

  2. 「ボタン・リージョン」で、「検索」を選択して「次へ」をクリックします。

  3. 「ボタン位置」で、「このリージョン・アイテムで表示されるボタンの作成」を選択して「次へ」をクリックします。

  4. 「ボタン名」に、P1_GOと入力します。

  5. 残りのデフォルトを受け入れて「ボタンの作成」をクリックします。

    ページ1のページ定義が表示されます。


参照:

『Oracle Database Application Expressユーザーズ・ガイド』の「ボタンの作成」

Onloadプロセスの追加

次に、非表示アイテムP1_TEXTに値を設定するプロセスを作成します。P1_TEXTの値によって、表示するリージョン・タイトルが決まります。このプロセスを追加することにより、リージョン・タイトルは次のように表示されます。

Employees in department_name

このプロセスを追加しないことを選択した場合、リージョン・ヘッダーは単にEmployeesと表示されます。

Onloadプロセスを追加するには、次のステップを実行します。

  1. 「ページ・プロセス」の「プロセス」で、「作成」アイコンをクリックします。

  2. 「プロセス・タイプ」で、「PL/SQL」を選択して「次へ」をクリックします。

  3. 「プロセス属性」で、次のステップを実行します。

    1. 「名前」に、get region title infoと入力します。

    2. 残りのデフォルトを受け入れて「次へ」をクリックします。

  4. 「プロセス」で、次のSQL問合せを入力します。

    DECLARE
       l_dept varchar2(100);
       l_mgr varchar2(100);
    BEGIN
    :P1_TEXT := null;
    
    IF :P1_DEPT != '%null%'
       THEN SELECT department_name
              INTO l_dept
              FROM oehr_departments
             WHERE department_id = :P1_DEPT;
            :P1_TEXT := :P1_TEXT || ' in Department ' || l_dept;
    END IF;
    
    IF :P1_MGR != '%null%'
       THEN SELECT first_name || ' ' || last_name
              INTO l_mgr
              FROM oehr_employees
             WHERE employee_id = :P1_MGR;
            :P1_TEXT := :P1_TEXT ||' reporting to ' || l_mgr;
    END IF;
    END;
    
    
  5. プロセスの作成」をクリックします。

ページ1のページ定義が表示されます。

ページの実行

ページを実行するには、次のステップを実行します。

  1. 図3-3に示すように、ページの右上にある「ページの実行」アイコンをクリックします。

    図3-3 「ページの実行」アイコン

    図3-3の説明が続きます。
    「図3-3「ページの実行」アイコン」の説明

  2. ユーザー名およびパスワードを入力するように要求されたら、作業領域のユーザー名およびパスワードを入力して、「ログイン」をクリックします。詳細は、「アプリケーション認証の概要」を参照してください。

  3. 「Employees」ページが表示されたら、「Department」リストまたは「Manager」リストから値を選択して「実行」をクリックします。

図3-4に示すように、Employeesレポートが表示されます。

図3-4 選択リストから移入されたフォームの結果

図3-4の説明が続きます。
「図3-4 選択リストから移入されたフォームの結果」の説明